假设我有Go语言中的数组
A
和B
,那么将B
中的所有值追加到A
中,最快的方法是什么?Arrays in Go are secondary, slices are the way to go. Go provides a built-in append()
function to append slices:
a := []int{1, 2, 3}
b := []int{4, 5}
a = append(a, b...)
fmt.Println(a)
输出:
[1 2 3 4 5]
在Go Playground上尝试。
注:
Go中的数组是固定大小的:一旦创建了数组,就不能增加其大小,所以无法向其追加元素。如果必须这样做,您需要分配一个新的更大的数组;足够容纳来自2个数组的所有元素。切片则更加灵活。
Go中的数组非常“不灵活”,甚至数组大小也是其类型的一部分,因此例如数组类型[2]int
与类型[3]int
不同,因此即使您创建了一个帮助器函数来添加/追加类型为[2]int
的数组,您也无法使用它来追加类型为[3]int
的数组!
阅读以下文章以了解有关数组和切片的更多信息: