本文簡要介紹rust語言中 std::hash::Hash.hash_slice
的用法。
用法
fn hash_slice<H>(data: &[Self], state: &mut H) where H: Hasher,
將這種類型的切片輸入給定的 Hasher
。
這種方法是為了方便,但它的實現也明確地未指定。它不能保證等同於重複調用 hash
並且 Hash
的實現應該記住這一點,如果切片在 PartialEq
實現中沒有被視為一個整體單元,則應該自己調用 hash
。
例如, VecDeque
實現可能會天真地調用 as_slices
,然後在每個切片上調用 hash_slice
,但這是錯誤的,因為調用 make_contiguous
可以更改兩個切片,而不會影響 PartialEq
結果。由於這些切片不被視為單個單元,而是更大的雙端隊列的一部分,因此不能使用此方法。
例子
use std::collections::hash_map::DefaultHasher;
use std::hash::{Hash, Hasher};
let mut hasher = DefaultHasher::new();
let numbers = [6, 28, 496, 8128];
Hash::hash_slice(&numbers, &mut hasher);
println!("Hash is {:x}!", hasher.finish());
相關用法
- Rust Hash.hash用法及代碼示例
- 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 HashMap.into_values用法及代碼示例
- Rust HashMap.get_mut用法及代碼示例
注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 std::hash::Hash.hash_slice。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。