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

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

type Hash [32]byte

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

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

我得到的错误如下:

无法将 myHash(哈希类型的变量)转换为字符串编译器(InvalidConversion)

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

提前致谢!


胡子哥哥
浏览 288回答 1
1回答

收到一只叮咚

Go 不支持从字节数组到字符串的转换,但是 Go 支持从字节切片到字符串的转换。通过切片数组修复: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[:])
打开App,查看更多内容
随时随地看视频慕课网APP