假设我在Go中有数组A
和B
。将B
的所有值附加到A
的最快方法是什么?
答案 0 :(得分:13)
Arrays是次要的,slices是可行的方法。 Go提供了一个内置的append()
函数来追加切片:
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
不同,所以即使你要创建一个辅助函数来添加/追加类型{ {1}}您无法使用它来追加[2]int
类型的数组!
阅读这些文章以了解有关数组和切片的更多信息: