我正在学习go语言,并在一些网络资源的帮助下编写了我的第一个go程序:
package main
import (
"fmt"
"crypto/sha512"
"encoding/base64"
)
func main() {
ba := []byte("HelloWorld")
hasher := sha512.New()
hasher.Write(ba)
sha := base64.StdEncoding.EncodeToString(hasher.Sum(nil))
fmt.Printf(sha)
}它像预期的那样编译和工作,但是我无法自己编写这段代码,因为如果我查看sha256的Go包引用,我就看不到Write()和Sum()方法。在哪里可以找到这类信息?也许,我没有阅读好的文档,或者有一种“继承”,我没有看到。
发布于 2016-02-09 15:08:15
发布于 2016-02-09 15:08:16
Sum()和Write()函数是Hash接口的一部分,该接口由各种不同类型的哈希实现。
发布于 2016-02-09 15:15:12
hash.Hash返回一个Hash接口,其中包括io.Writer。如果您检查io.Writer,您将找到一个Writer接口,它有一个Write()方法。因为sha512包确实实现了写方法,所以可以将Write作为hasher方法调用。
访问接口的唯一要求是实现自定义范围中定义的方法。
https://stackoverflow.com/questions/35295339
复制相似问题