什么是铁锈相当于JavaScript的传播运营商的阵列?

问题描述 投票:2回答:3

在JavaScript中,有一个名为蔓延运营商,可以让你很阵列结合简洁的操作员。

let x = [3, 4];
let y = [5, ...x]; // y is [5, 3, 4]

有没有办法做这样的事情在锈?

arrays vector rust
3个回答
2
投票

如果你只需要y是迭代,你可以这样做:

let x = [3,4];
let y = [5].iter().chain(&x);

如果你需要它是可转位,那么你要收集它变成一个载体。

let y: Vec<_> = [5].iter().chain(&x).map(|&x|x).collect();

4
投票

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]
}

-3
投票

没有,但也许你可以尝试做一个宏,类似于vec!

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