在此代码中:
#![allow(unused)]
fn main() {
use std::collections::hash_map::DefaultHasher;
use std::hash::Hasher;
let mut hasher = DefaultHasher::new();
hasher.write_u32(1989);
hasher.write_u8(11);
hasher.write_u8(9);
hasher.write(b"Huh?");
println!("Hash is {:x}!", hasher.finish());
}
Run Code Online (Sandbox Code Playgroud)
我理解 write_u8、u32、i32,但是 b 的意义是什么,为什么不是其他字母,新手程序员,任何建议将不胜感激!
Ari*_*Dey 13
任何以 a 为前缀的字符串b都会告诉编译器该字符串应被视为字节序列。这称为字节字符串文字。
您可以在The Rust Reference中阅读更多相关信息。简而言之,Rust 中的字符串是一个有效的 unicode 字符序列,因此它可以表示为&[u8](包含无符号 8 位整数的切片)。一个字节也是一个 8 位整数,因此它被视为 unicode 字节序列。
该hasher.write(...)函数采用 a &[u8],基本上是一个字节序列作为参数。为了将您的转换&str为字节,您可以在其前面加上前缀b
| 归档时间: |
|
| 查看次数: |
7549 次 |
| 最近记录: |