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/ 这是什么写的()?
谢谢
该散列接口嵌入了作家接口.因此,任何想要实现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)