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

如何从 []byte 转换为 [16]byte?

如何从 []byte 转换为 [16]byte?

Go
小怪兽爱吃肉 2021-09-10 16:39:45
我有这个代码:func my_function(hash string) [16]byte {    b, _ := hex.DecodeString(hash)    return b   // Compile error: fails since [16]byte != []byte}b将是类型[]byte. 我知道它hash的长度是 32。我怎样才能让上面的代码工作?IE。我可以以某种方式从一般长度的字节数组转换为固定长度的字节数组吗?我对分配 16 个新字节和复制数据不感兴趣。
查看完整描述

1 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

没有将切片转换为数组的直接方法。但是,您可以进行复制。

var ret [16]byte
copy(ret[:], b)

标准库使用 []byte,如果您坚持使用其他东西,您将有更多的输入要做。我为我的 md5 值编写了一个使用数组的程序并后悔了。


查看完整回答
反对 回复 2021-09-10
  • 1 回答
  • 0 关注
  • 236 浏览
慕课专栏
更多

添加回答

举报

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