为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
胡子哥哥 2022-11-23 15:32:59

这与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 中执行此操作;我已经搜索了一段时间,但找不到这个确切案例的解决方案。

提前致谢!


查看完整描述

1 回答

?
收到一只叮咚

TA贡献1542条经验 获得超4个赞

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[:])


查看完整回答
反对 回复 5天前

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信