type Hash
type Hash struct {
// contains filtered or unexported fields
}
func (h *Hash) Reset() 重置将丢弃已添加到h的所有字节
func (h *Hash) Seed() Seed 返回h的种子值
func (h *Hash) SetSeed(seed Seed)
- SetSeed将h设置为使用种子,该种子必须已由MakeSeed或另一个Hash的Seed方法返回
- 相同种子的两个哈希对象的行为相同(如果添加到h的字节相同,最后生成的hash值相同)
- 在此调用 SetSeed之前添加到h的任何字节将被丢弃
func (h *Hash) Size() int Size返回h的哈希值大小,即8个字节
func (h *Hash) Sum(b []byte) []byte
- Sum将哈希的当前64位值附加到b。它用于实现hash.Hash。对于直接调用,使用Sum64效率更高。
func (h *Hash) Sum64() uint64 Sum64返回h的当前64位值
func (h *Hash) Write(b []byte) (int, error) 添加b到h,永远不会失败;计数和错误结果用于实现io.Writer
func (h *Hash) WriteByte(b byte) error 添加b到h
func (h *Hash) WriteString(s string) (int, error) 添加b到h,永远不会失败;计数和错误结果用于实现io.Writer
type Seed
type Seed struct {
// contains filtered or unexported fields
}
func MakeSeed() Seed 返回一个随机生成的种子
package main
import (
"fmt"
"hash/maphash"
"time"
)
func main() {
var h maphash.Hash
h.SetSeed(maphash.MakeSeed())
h.Write([]byte{'f', 'o', 'o'})
for {
fmt.Printf("%x\n", h.Sum64())
time.Sleep(1 * time.Second)
}
}
40caa432955fcc47
40caa432955fcc47
40caa432955fcc47
...