我有一个 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