我有一个i32传递到我的键值数据库的。
let a = 1234i32;
db.put(&a.to_be_bytes());
Run Code Online (Sandbox Code Playgroud)
但我把它恢复为&[u8],如何将其转换回i32?
更新:这个例子几乎满足了我的要求。
use std::convert::TryInto;
fn read_be_i32(input: &[u8]) -> i32 {
i32::from_be_bytes(input.try_into().unwrap())
}
Run Code Online (Sandbox Code Playgroud)
使用这个答案中i32::from_be_bytes的 和:TryFrom
use std::convert::TryFrom;
fn main() {
let a = 1234i32.to_be_bytes();
let a_ref: &[u8] = &a;
let b = i32::from_be_bytes(<[u8; 4]>::try_from(a_ref).expect("Ups, I did it again..."));
println!("{}", b);
}
Run Code Online (Sandbox Code Playgroud)