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

What is the fastest way to append one array to another in Go?

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

Arrays in Go are secondary, slices are the way to go. Go provides a built-in 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 中的数组 "inflexible" 甚至数组的大小也是其类型的一部分,例如数组类型 [2]int 与类型 [3]int 不同,所以即使如果您要为 add/append 类型 [2]int 的数组创建辅助函数,则不能使用它来附加类型 [3]int!

的数组

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

Go Slices: usage and internals

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