如何在Go语言中连接两个切片?


每当我们谈到将元素附加到切片时,我们都知道我们需要使用`append()`函数,该函数将切片作为第一个参数,并将我们想要附加的值作为下一个参数。

语法如下所示。

sl = append(sl,1)

我们可以用同样的命令附加多个值到切片“`sl`”,而不是只附加一个数字。

考虑以下代码片段。

sl = append(sl,1,2,3,4)

以上代码在**Go**中可以正常工作。

当涉及到将一个切片附加到另一个切片时,我们需要使用**可变参数**函数签名点。在Go语言的可变参数函数中,我们可以向函数传递可变数量的参数,并且可以使用参数名称访问所有数字。

让我们考虑一个简单的例子,我们将多个数字添加到整数切片中。

示例1

考虑以下代码。

package main
import "fmt"
func main() {
   sl := []int{1, 2, 3}
   sl = append(sl, 5, 6, 7)
   fmt.Println(sl)
}

输出

运行代码时,将产生以下输出:

[1 2 3 5 6 7]

现在,假设我们不是传递数字,而是将切片字面量作为参数传递给`append`函数。

需要注意的是,要传递切片字面量,我们需要使用三个点(...)。

示例2

考虑以下代码。

package main
import "fmt"
func main() {
   sl := []int{1, 2, 3}
   sl = append(sl, []int{4, 5}...)
   fmt.Println(sl)
}

输出

运行代码时,将产生以下输出:

[1 2 3 4 5]

我们也可以传递一个切片,而不是像上面示例中那样传递切片字面量。

示例3

考虑以下代码。

package main
import "fmt"
func main() {
   sl := []int{1, 2, 3}
   sl = append(sl, 5, 6, 7)
   sl1 := []int{0}
   sl1 = append(sl1, sl...)
   fmt.Println(sl)
   fmt.Println(sl1)
}

输出

运行代码时,将产生以下输出:

[1 2 3 5 6 7]
[0 1 2 3 5 6 7]

更新于:2022年2月22日

3K+ 次查看

启动您的职业生涯

完成课程获得认证

开始学习
广告