如何将 4 元素 &[u8] 转换为 i32?

ami*_*min 5 unsafe rust

我有一个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)

Net*_*ave 3

使用这个答案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)

操场