當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。