在 Go 中将一个数组附加到另一个数组的最快方法是什么?
What is the fastest way to append one array to another in Go?
假设我在 Go 中有数组 A
和 B
。将 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 中有数组 A
和 B
。将 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
!
阅读这些文章以了解有关数组和切片的更多信息: