在Go语言中,将一个数组追加到另一个数组的最快方法是什么?

3
假设我有Go语言中的数组AB,那么将B中的所有值追加到A中,最快的方法是什么?
1个回答

18
在Go语言中,数组是次要的,切片才是更好的选择。Go语言提供了一个内置的append()函数来追加切片内容:

Arrays in Go are secondary, slices are the way to go. Go provides a built-in append() function to append slices:

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

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

Go Slices:用途和内部机制

Arrays,slices(和strings):'append'的机制


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接