【发布时间】:2016-09-21 14:40:42
【问题描述】:
在这段代码中:
fn unpack_u32(data: &[u8]) -> u32 {
assert_eq!(data.len(), 4);
let res = data[0] as u32 |
(data[1] as u32) << 8 |
(data[2] as u32) << 16 |
(data[3] as u32) << 24;
res
}
fn main() {
let v = vec![0_u8, 1_u8, 2_u8, 3_u8, 4_u8, 5_u8, 6_u8, 7_u8, 8_u8];
println!("res: {:X}", unpack_u32(&v[1..5]));
}
函数 unpack_u32 只接受长度为 4 的切片。有没有办法用编译时检查替换运行时检查 assert_eq?
【问题讨论】:
标签: rust