本文簡要介紹rust語言中 Trait core::hash::Hasher
的用法。
用法
pub trait Hasher {
fn finish(&self) -> u64;
fn write(&mut self, bytes: &[u8]);
fn write_u8(&mut self, i: u8) { ... }
fn write_u16(&mut self, i: u16) { ... }
fn write_u32(&mut self, i: u32) { ... }
fn write_u64(&mut self, i: u64) { ... }
fn write_u128(&mut self, i: u128) { ... }
fn write_usize(&mut self, i: usize) { ... }
fn write_i8(&mut self, i: i8) { ... }
fn write_i16(&mut self, i: i16) { ... }
fn write_i32(&mut self, i: i32) { ... }
fn write_i64(&mut self, i: i64) { ... }
fn write_i128(&mut self, i: i128) { ... }
fn write_isize(&mut self, i: isize) { ... }
}
散列任意字節流的特征。
Hasher
的實例通常表示在散列數據時更改的狀態。
Hasher
提供了一個相當基本的接口,用於檢索生成的哈希(使用 finish
),並將整數和字節切片寫入實例(使用 write
和 write_u8
等)。大多數時候,Hasher
實例與 Hash
特征結合使用。
此特征不假設如何定義各種write_*
方法,並且 Hash
的實現不應假設它們以一種或另一種方式工作。例如,您不能假設 write_u32
調用等同於 write_u8
的四個調用。
例子
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());
相關用法
- Rust Hasher用法及代碼示例
- Rust Hasher.write用法及代碼示例
- Rust Hasher.finish用法及代碼示例
- Rust HashSet.get_or_insert_with用法及代碼示例
- Rust HashMap.get用法及代碼示例
- Rust HashMap.try_insert用法及代碼示例
- Rust HashSet.insert用法及代碼示例
- Rust HashSet.get_or_insert用法及代碼示例
- Rust HashSet用法及代碼示例
- Rust HashSet.is_superset用法及代碼示例
- Rust HashSet.shrink_to用法及代碼示例
- Rust HashMap.keys用法及代碼示例
- Rust HashSet.with_hasher用法及代碼示例
- Rust HashMap.iter用法及代碼示例
- Rust HashMap.iter_mut用法及代碼示例
- Rust HashMap.retain用法及代碼示例
- Rust HashMap.with_capacity_and_hasher用法及代碼示例
- Rust HashSet.with_capacity用法及代碼示例
- Rust HashSet.difference用法及代碼示例
- Rust HashMap.clear用法及代碼示例
- Rust HashMap.reserve用法及代碼示例
- Rust HashSet.try_reserve用法及代碼示例
- Rust HashMap.with_hasher用法及代碼示例
- Rust HashMap.into_keys用法及代碼示例
- Rust HashSet.hasher用法及代碼示例
注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 Trait core::hash::Hasher。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。