如何获取数组而不是切片的引用?

问题描述 投票:0回答:1

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

铁锈游乐场

rust
1个回答
0
投票

不。

size_of_val()
返回引用指向的值的大小,这对于数组和切片来说是相同的。如果您执行 size_of_val(&reference)
,您会看到 
reference
 是一个细指针。

© www.soinside.com 2019 - 2024. All rights reserved.