如何高效将字符串内容复制到Rust可变数组中?
Rust高效将静态字符串字节写入可变数组
最直接且高效的方式是使用copy_from_slice方法,它会利用底层优化的内存拷贝逻辑(比如系统的memcpy),比手动遍历字节的效率高得多,代码也更简洁:
let s = "foo"; let mut buf = [0u8; 16]; let str_bytes = s.as_bytes(); // 拷贝字符串字节到缓冲区的对应位置 buf[..str_bytes.len()].copy_from_slice(str_bytes);
补充说明
- 因为题目明确说明缓冲区长度足够,所以不需要额外处理边界溢出的情况;Rust在debug模式下会自动做切片越界检查,release模式下会优化掉这些检查以提升性能。
- 这种方法本质是批量内存拷贝,相比手动遍历逐个赋值,能最大程度利用CPU的内存访问优化,是这类场景下的最优选择。
内容的提问来源于stack exchange,提问作者Sergio Gliesh
相关产品推荐
相关产品推荐

