本文简要介绍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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。