为啥我不能按照指定的 Go 引用将字符串附加到字节切片?

Posted

技术标签:

【中文标题】为啥我不能按照指定的 Go 引用将字符串附加到字节切片?【英文标题】:Why can't I append string to byte slice as the Go reference specified?为什么我不能按照指定的 Go 引用将字符串附加到字节切片? 【发布时间】:2015-03-12 05:09:22 【问题描述】:

引用reference of append of Go

作为一种特殊情况,将字符串附加到字节切片是合法的,如下所示: slice = append([]byte("hello "), "world"...)

但我发现我不能像这个 sn-p 那样做:

package main
import "fmt"

func main()
    a := []byte("hello")
    s := "world"
    a = append(a, s) //*Error*: can't use s(type string) as type byte in append 
    fmt.Printf("%s",a)

我做错了什么?

【问题讨论】:

【参考方案1】:

您需要使用“...”作为后缀才能将一个切片附加到另一个切片。 像这样:

package main
import "fmt"

func main()
    a := []byte("hello")
    s := "world"
    a = append(a, s...) // use "..." as suffice 
    fmt.Printf("%s",a)

你可以在这里试试:http://play.golang.org/p/y_v5To1kiD

【讨论】:

以上是关于为啥我不能按照指定的 Go 引用将字符串附加到字节切片?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我不能用 `copy()` 复制切片?

为啥我不能从将一个列表附加到另一个列表中获取元素

为啥我不能将数字附加到我的变量?!在斯威夫特 3

为啥我不能将字符串添加到 ByteBuffer?

为啥嵌套字典不能正确附加到列表中?

C++ 为啥我不能将此指针保存到引用?