【发布时间】:2019-06-06 14:26:48
【问题描述】:
我有一个字节向量,想用[4, 5, 6] 替换每个[1, 2, 3]。这在 Rust 中怎么可能?
let mut buf = vec![1, 2, 3, 7, 8];
// ?
assert_eq!(buf, vec![4, 5, 6, 7, 8]);
【问题讨论】:
-
替换切片的长度是否必须与要替换的切片长度相同?或者您可能需要缩小/扩大
Vec? -
我认为目前
&[u8]上没有任何方便的通用例程可以为您执行此操作,类似于str::replace方法。我可能只是自己实现它,可能通过复制implementation forstr::replace。 (我正在为 Rust 开发一个字节字符串库,它肯定会支持这样的操作。但它还没有完成。) -
在此处应用链接的问题建议
buf[0..3].copy_from_slice(&[4, 5, 6]);。如果切片大小不同,则可能是 Efficiently insert or replace multiple elements in the middle or at the beginning of a Vec? 的副本 -
我的错误,我忽略了问题中的“每个”一词。但是上面的链接还是很好看的。