假设我在堆栈上有一些元组:
let a:(u8,u8,u8) = (1,2,3);
Run Code Online (Sandbox Code Playgroud)
如何创建一个切片到全部或部分?
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]
}
Run Code Online (Sandbox Code Playgroud)
还有这个RFC,但它很久以前就关闭了。
归档时间: |
|
查看次数: |
1724 次 |
最近记录: |