Rust:如何将字节连接在一起



我已经阅读了以下链接,但在当前尝试中仍然会遇到一些错误:

let data = &[37u8, 42u8];
let data_two = &[0x34u8, 0x32u8];
let res:Vec<u8> = [data, data_two].concat();

此外,理想情况下,我希望避免串联,并将u8的数组写入缓冲区,在缓冲区中,我保留前两个字节用于存储长度和索引,如:

let nb:u8 = get_chunks_nb();
let index:u8 = get_chunk_index();
let header = &[nb, index];
// this kind of things in C:
memcpy(&buffer, header, 2);
memcpy(&buffer[2], chunk, chunk_len);

谢谢你的帮助!

我尝试了一下,但我不能100%确定为什么,我还是Rust的新手。

看起来编译器将datadata_two视为数组,因此[data, data_two]是数组的数组,而不是切片的数组。这可能就是它在上面找不到concat方法的原因

通过明确地说数据是一个切片,一切似乎都到位了:

let data:&[u8] = &[37u8, 42u8];
let data_two = &[0x34u8, 0x32u8];
let mut res:Vec<u8> = [data, data_two].concat();

最新更新