在Go中将一个数组附加到另​​一个数组的最快方法是什么?

时间:2015-03-10 06:10:14

标签: arrays go append slice

假设我在Go中有数组AB。将B的所有值附加到A的最快方法是什么?

1 个答案:

答案 0 :(得分:13)

Go中的

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类型的数组!

阅读这些文章以了解有关数组和切片的更多信息:

Go Slices: usage and internals

Arrays, slices (and strings): The mechanics of 'append'