You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rust中如何以最短方式将单字节与4字节拼接为5字节数组?

Rust中拼接单个u8与u32大端字节数组的简洁实现

要实现单个u8字节与u32转大端后的4字节数组拼接成固定长度5的u8数组,最简洁的方式是利用Rust 1.55+引入的数组展开语法,直接在数组字面量中展开目标数组:

let byte: u8 = 1;
let foo: u32 = 5;
let out: [u8; 5] = [byte, ..foo.to_be_bytes()];

其他可选实现方式

  • 兼容低版本Rust的手动构造方案:先缓存u32的大端字节数组,再逐个元素填充目标数组
let byte: u8 = 1;
let foo: u32 = 5;
let foo_be = foo.to_be_bytes();
let out: [u8; 5] = [byte, foo_be[0], foo_be[1], foo_be[2], foo_be[3]];
  • 迭代器拼接方案:通过迭代器链合并元素后转换为数组,会产生临时Vec,存在轻微运行时开销
let byte: u8 = 1;
let foo: u32 = 5;
let out: [u8; 5] = std::iter::once(byte)
    .chain(foo.to_be_bytes())
    .collect::<Vec<_>>()
    .try_into()
    .unwrap();

内容的提问来源于stack exchange,提问作者eof

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 21:53:13