小编sam*_*mbh的帖子

如何复制&[u8]切片?

如何复制&[u8]切片的内容?

我正在尝试编写一个函数,它将缓冲区作为输入,并使用给定键对每个字节进行异或,并返回最终结果.

我不希望它破坏输入缓冲区.

pub fn xor_buffer(buffer_in: &[u8], key: char) -> &[u8] {

    let mut buffer_out = buffer_in.clone();

    for byte in &mut buffer_out[..] {
        *byte ^= key as u8;
    }

    buffer_out
}
Run Code Online (Sandbox Code Playgroud)

此代码生成以下编译时错误:

src/test.rs:29:22: 29:32 error: cannot borrow immutable borrowed content `*buffer_out` as mutable
src/test.rs:29     for byte in &mut buffer_out[..] {
                                               ^~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)

我知道我必须做错事.

任何帮助都会得到赞赏.

rust borrowing

5
推荐指数
1
解决办法
1795
查看次数

标签 统计

borrowing ×1

rust ×1