I'm trying to convert a int16 to a byte array but i cant seem to get it to work.
Here is what i've got right now:

int16 i := 41
a := []byte(string(i))//this line is wrong

如果有人想知道数组的长度是否需要为2.

推荐答案

如果要获取int16的字节,请try 以下操作:

var i int16 = 41
var h, l uint8 = uint8(i>>8), uint8(i&0xff)

Go试图使编写依赖于您的平台属性(如字节顺序)的程序变得困难.因此,禁止导致这种依赖关系的类型双关(例如用int16覆盖字节数组).

如果你真的想搬起石头砸自己的脚,试试unsafe号套餐吧.

Go相关问答推荐

如何在gocql中设置gocqlSYS标志?

Zitadel示例Go Webapp加密密钥

GO框架Echo中间件的使用

无法使用exec从管道中读取.Go中的命令

go-jwt 令牌验证错误 - 令牌签名无效:密钥类型无效

Kperf 构建失败

使用 httptest 对 http 请求进行单元测试重试

从单词中删除特殊字符

如何在 `hashicorp / terraform-exec` 中将 `ApplyConfig` 传递给 `tf.Apply()`?

golang中如何声明多个接口约束?

类型/ struct 函数的 GoDoc 示例函数

使用 unsafe.Pointer 将 struct point直接转换为另一个 struct 是否安全?

errors.Wrap 和 errors.WithMessage 有什么区别

从数据库中带有 imageurl 的文件夹中获取图像,并在我的浏览器中用 golang 中的 echo 显示

Go gmail api 快速入门导致本地主机拒绝连接 ERR_CONNECTION_REFUSED

有没有办法将 yaml node 添加到 golang 中现有的 yaml 文档中?

为什么 Go 被认为是部分抢占式的?

使用 package`regexp` 查找 Golang 中的所有 mactch 子字符串,但得到意外结果

gob 解码器仅返回数组中的第一个元素

带有 *s3.S3 对象的 Golang 单元测试