小编Ogr*_*mny的帖子

为什么在调用Vec :: set_len之前调用Vec :: resize导致Vec有数据?

我有一个我不明白的问题:

fn cipher_with(key: &[u8], data: &[u8]) -> Vec<u8> {
    let data_len = 16;

    let mut data = data.to_vec();
    data.resize(data_len, 2);

    let mut output = Vec::<u8>::with_capacity(data_len);
    unsafe { output.set_len(data_len) }

    output
}

fn main() {
    let key = "blabla".as_bytes();
    let data = "lorem ipsum.".as_bytes();
    println!("{:?}", cipher_with(&key, &data));
}
Run Code Online (Sandbox Code Playgroud)

这打印:

[108,111,114,101,109,32,105,112,115,117,109,46,0,0,0,0]

但它是如何完成的?我从未给过这个价值output.

arrays vector slice rust

3
推荐指数
1
解决办法
106
查看次数

标签 统计

arrays ×1

rust ×1

slice ×1

vector ×1