我最近尝试在Go中附加两个字节数组切片,并遇到了一些奇怪的错误。我的代码是:one:=make([]byte, 2)two:=make([]byte, 2)one[0]=0x00one[1]=0x01two[0]=0x02two[1]=0x03log.Printf("%X", append(one[:], two[:]))three:=[]byte{0, 1}four:=[]byte{2, 3}five:=append(three, four)错误是:cannot use four (type []uint8) as type uint8 in appendcannot use two[:] (type []uint8) as type uint8 in append考虑到Go切片的鲁棒性应该不是问题:http://code.google.com/p/go-wiki/wiki/SliceTricks我在做什么错,我应该如何追加两个字节数组?
2 回答
婷婷同学_
TA贡献1844条经验 获得超8个赞
append()
接受一个类型的切片[]T
,然后接受该切片成员类型的可变数目的值T
。换句话说,如果将a[]uint8
作为切片传递给append()
它,则它希望每个后续参数都是a uint8
。
解决方案是使用slice...
语法来传递切片来代替varargs参数。您的代码应如下所示
log.Printf("%X", append(one[:], two[:]...))
和
five:=append(three, four...)
- 2 回答
- 0 关注
- 422 浏览
添加回答
举报
0/150
提交
取消