假设我有数组A和B围棋。什么是追加的所有值最快的方式B来A?
A
B
Go中的数组是次要的,而 切片 则是方法。Go提供了一个内置append()功能来附加切片:
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因此即使您创建了一个辅助函数来添加/追加类型的数组,[2]int您也无法用它来附加类型的数组[3]int!
[2]int
[3]int
阅读这些文章,以了解有关数组和切片的更多信息:
切成薄片:用法和内部原理
数组,切片(和字符串):“追加”的机制