GoLang,"hash.Write","write()"函数来自哪里?

Buf*_*lls 2 go

func hash(s string) uint32 {
    h := fnv.New32a()
    h.Write([]byte(s))
    return h.Sum32()
}
Run Code Online (Sandbox Code Playgroud)

对于这段代码.我明白什么类型是h.这是哈希.但是对于Hash类型,我没有看到任何Write()方法.http://golang.org/pkg/hash/ 这是什么写的()?

谢谢

tux*_*21b 5

散列接口嵌入了作家接口.因此,任何想要实现Hash接口的类型,也需要实现包含Write方法的Writer接口.

Write方法的原因是你可以计算任何可以写入的哈希值.例如,您可以计算对象的格式化表示的哈希值(通过使用fmt包),或者您可以计算json表示的哈希值(通过使用json包)等.

h := fnv.New32a()
fmt.Fprint(h, myobject)
// alternatively:
// json.NewEncoder(h).Encode(myobject)
// etc.
return h.Sum32()
Run Code Online (Sandbox Code Playgroud)