假设我有数组A
和B
围棋。什么是追加的所有值最快的方式B
来A
?
Go中的数组是次要的,而
切片
则是方法。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
因此即使您创建了一个辅助函数来添加/追加类型的数组,[2]int
您也无法用它来附加类型的数组[3]int
!
阅读这些文章,以了解有关数组和切片的更多信息:
切成薄片:用法和内部原理
数组,切片(和字符串):“追加”的机制
问题内容: 当我运行以下代码时,什么也不会被复制-我在做什么错? 另外,这是将数据从一个阵列复制到另一个阵列的最佳/最有效的方法吗? 问题答案: 我认为您的工作很落后: 应该:
问题内容: 如何在不比较键的情况下将一个数组追加到另一个数组? 最后应该是: 如果我使用或,则将导致以下结果之一: 这样做应该是一件值得做的事,但是要用一种更优雅的方式: 问题答案: 是一种优雅的方式: 做类似的事情: 将不起作用,因为运算符实际上并未合并它们。如果它们的键与相同,则不会执行任何操作。
问题内容: 最近有人要求我为一份工作编写3个测试程序。它们将仅使用核心Java API和我选择的任何测试框架来编写。应在适当的地方实施单元测试。 尽管我根本没有收到任何反馈,但我想他们不喜欢我的解决方案(否则我会收到他们的来信),所以我决定在这里展示我的程序,并询问这种实现是否可以认为是好的,并且,如果没有,那为什么呢? 为避免混淆,我现在只问第一个。 实现一个函数,以在另一个更大的数组中查找一个
问题内容: 如何有效地检查整数数组中的所有元素是否是Java中另一个数组的所有元素的子集?例如,[33 11 23]是[11 23 33 42]的子集。提前致谢。 问题答案: 从超集数组中取出一个。检查子集中数组的每个元素是否包含在中。这是非常快速的操作。
虽然Swift中的link:Add a element to a array展示了如何将一个项目添加到一个数组中,但我的问题是如何将一个数组作为一个项目添加到另一个数组中。 我没有发现任何类似的问题——我有以下阵列: 和 我想将第一个数组作为一个整体附加到另一个数组,所以我得到这样的结果: 请注意,这不是预期的结果: 我将如何实现这一点?
我正试图将数据复制到数组中,但出现了一个错误,称无法转换类型。我该怎么解决这个问题?