我有Vec<f32>
这样:
let mut v: Vec<f32> = Vec::new();
v.push(1.0);
v.push(2.0);
v.push(3.0);
是否有一种惯用的方法用切片替换部分内容?我有这样的功能:
fn replace(&mut v: Vec<f32>, start: usize, vals: &[f32]) {
// ...
}
在这种情况下,我希望将v
中的值替换为vals
中的值,从start
的索引v
开始。如果我有上述Vec
,我想这样做:
// Before v contains (1.0, 2.0, 3.0)
replace(&v, 0, &[4.0, 5.0]);
// Now v would contain (4.0, 5.0, 3.0)
我想这可以通过从start
索引开始迭代来完成,但有没有更惯用的Rust方法呢?