Vector 如何获取Vec的切片<;T>;锈迹斑斑?
我在Vector 如何获取Vec的切片<;T>;锈迹斑斑?,vector,rust,Vector,Rust,我在Vec的文档中找不到如何从指定范围检索切片 标准库中是否有类似的内容: let a = vec![1, 2, 3, 4]; let suba = a.subvector(0, 2); // Contains [1, 2]; Vec的文档介绍了这一点 您可以通过使用(或、、或),(或)索引或来创建或的: 如果您希望将整个Vec转换为切片,可以使用: 调用函数时会自动应用此强制: fn print_it(b: &[i32]) { println!("{:?}", b); }
Vec
的文档中找不到如何从指定范围检索切片
标准库中是否有类似的内容:
let a = vec![1, 2, 3, 4];
let suba = a.subvector(0, 2); // Contains [1, 2];
Vec
的文档介绍了这一点
您可以通过使用(或、、或),(或)索引或来创建或的:
如果您希望将整个
Vec
转换为切片,可以使用:
调用函数时会自动应用此强制:
fn print_it(b: &[i32]) {
println!("{:?}", b);
}
fn main() {
let a = vec![1, 2, 3, 4, 5];
print_it(&a);
}
你也可以打电话,但不太常见:
fn main() {
let a = vec![1, 2, 3, 4, 5];
let b = a.as_slice();
println!("{:?}", b);
}
另见:
SliceIndex
impls的文档中有明确的文档记录,例如:“从字节范围[begin,len)
返回给定字符串的一个片段。相当于&self[begin..len]
或&mut self[begin..len]
+1我喜欢.as_slice()
比[…]
因为它传达了意图。(将Vec转换为切片,因为只有切片而不是Vec实现io::Read
)
fn print_it(b: &[i32]) {
println!("{:?}", b);
}
fn main() {
let a = vec![1, 2, 3, 4, 5];
print_it(&a);
}
fn main() {
let a = vec![1, 2, 3, 4, 5];
let b = a.as_slice();
println!("{:?}", b);
}