标签: go
func hash(s string) uint32 { h := fnv.New32a() h.Write([]byte(s)) return h.Sum32() }
这段代码。我明白什么类型是h。这是哈希。 但是对于Hash类型,我没有看到任何Write()方法。 http://golang.org/pkg/hash/这是什么写的()?
感谢
答案 0 :(得分:5)
Hash界面嵌入了Writer界面。因此,任何想要实现Hash接口的类型也需要实现包含Write方法的Writer接口。
写入方法的原因是您可以计算可以写入的任何内容的哈希值。例如,您可以计算对象的格式化表示的哈希值(通过使用fmt包),或者您可以计算json表示的哈希值(通过使用json包)等。
h := fnv.New32a() fmt.Fprint(h, myobject) // alternatively: // json.NewEncoder(h).Encode(myobject) // etc. return h.Sum32()