Rust参考文档定义元组具有连续的布局和定义的顺序,因此您可以获取元组的第一个元素指针并将其转换为切片: #![feature(tuple_indexing)] use std::slice; fn main() { let t = (1u8, 2u8, 3u8); let f: *const u8 = &t.0; let s = unsafe { slice::from_raw_buf(&f, 3) }; println!("{}", s); // [1, 2, 3] } 还有这个请求进行了尝试,但它已经相当久远被关闭了。
在大多数情况下,这样做是没有意义的。元组与相同大小的固定大小数组之间的主要区别在于,元组支持异构元素,而数组包含相同类型的元素。切片是指向内存中连续的具有相同类型值的数组的fat指针,因此虽然它们可能对某些元组有意义,但一般不支持元组切片操作。