我有一个 4 X u32 类型的数组。我想要引用数组(指针)而不是切片(指针+长度)。下面的代码片段为切片和引用打印 16,这表明两种形式的初始化都返回一个切片。
是否有一些语法可以返回对不是切片的数组的引用?
use std::mem;
fn main() {
let array: [u32; 4] = [1, 2, 3, 4];
let slice: &[u32] = &array[..];
let reference: &[u32; 4] = &array;
println!("size(slice) = {:?}", mem::size_of_val(slice)); // Prints: 16
println!("size(reference) = {:?}", mem::size_of_val(reference)); // Prints: 16
}
不。
size_of_val()
返回引用指向的值的大小,这对于数组和切片来说是相同的。如果您执行 size_of_val(&reference)
,您会看到
reference
是一个细指针。