如何在 Rust 中以十六进制形式输出 u8 切片?
大家好!我是 Rust 新手,正在尝试理解如何显示字节数据。我有一个 `&[u8]` 切片,例如从文件读取或哈希后得到的字节数组。我需要将其以常见的十六进制字符串形式输出到控制台,就像其他语言中那样(例如 Python 的 `binascii.hexlify` 或 C 的 `%02x`)。
问题在于,简单的 `println!("{:?}", slice)` 会输出类似 `[72, 101, 108, 108, 111]` 的内容——这是十进制数字,而我需要像 `48656c6c6f` 这样的字符串。我尝试在格式化字符串中使用 `{:X}` 或 `{:02x}`,但这对于切片不直接适用。
以下是我的示例代码:
```rust
fn main() {
let data: &[u8] = &[72, 101, 108, 108, 111]; // "Hello" 的 ASCII 码
// 如何将 data 输出为 "48656c6c6f"?
println!("{:?}", data); // 输出 [72, 101, 108, 108, 111]
}
```
我知道可以编写循环并手动格式化每个字节,但这看起来有些繁琐。标准库中是否有更简洁的方法?