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