当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust Hash.hash_slice用法及代码示例


本文简要介绍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-lang.org大神的英文原创作品 std::hash::Hash.hash_slice。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。