Golang:将自定义类型(别名 [32]byte)转换为字符串

Golang: convert custom type (alias to [32]byte) to string

这与GOLANG语言有关。我找不到如何转换自定义类型的值:

type Hash [32]byte

转换为该散列的字符串表示形式:

myHash := CreateHash("This is an example text to be hashed")
fmt.Printf("This is the hash: %s", string(myHash))

我得到的错误如下:

cannot convert myHash (variable of type Hash) to string compiler(InvalidConversion)

虽然我可以只使用 [32] 个字节,但我真的很想知道如何在 GO 中执行此操作;我已经搜索了一段时间,但找不到这个确切案例的解决方案。

提前致谢!

Go 不支持 conversion from byte array to string, but Go does support conversion from a byte slice to a string. Fix by slicing 数组:

fmt.Printf("This is the hash: %s", string(myHash[:]))

您可以省略转换,因为 %s 动词支持字节片:

fmt.Printf("This is the hash: %s", myHash[:])

如果散列包含二进制数据而不是可打印字符,则考虑使用 %x 动词打印散列的十六进制编码:

fmt.Printf("This is the hash: %x", myHash[:])