在JavaScript中,有一个名为蔓延运营商,可以让你很阵列结合简洁的操作员。
let x = [3, 4];
let y = [5, ...x]; // y is [5, 3, 4]
有没有办法做这样的事情在锈?
如果你只需要y
是迭代,你可以这样做:
let x = [3,4];
let y = [5].iter().chain(&x);
如果你需要它是可转位,那么你要收集它变成一个载体。
let y: Vec<_> = [5].iter().chain(&x).map(|&x|x).collect();
Rust's arrays have a fixed length,所以不存在的只是结合在一起的方式;通常的方式来实现这一结果将有一个可变的载体,并用切片extend it:
fn main() {
let x = [3, 4];
let mut y = vec![5];
y.extend_from_slice(&x);
println!("{:?}", y); // [5, 3, 4]
}
没有,但也许你可以尝试做一个宏,类似于vec!