我想从两个数组中创建一个数组.
我试着用+:
var array1 = intArrayOf(1,2,3)
var array2 = intArrayOf(4,5,6)
var array3 = array1 + array2
Run Code Online (Sandbox Code Playgroud)
但不幸的是它不起作用......我怎样才能将它们结合起来?
zsm*_*b13 19
实际上,您的确切代码适合我.在多个Kotlin版本上尝试过它.您可以operator fun IntArray.plus(elements: IntArray): IntArray在此处的文档中找到用于此功能的函数,以及此处的源代码.
var array1 = intArrayOf(1, 2, 3) // 1, 2, 3
var array2 = intArrayOf(4, 5, 6) // 4, 5 ,6
var array3 = array1 + array2 // 1, 2, 3, 4, 5, 6
Run Code Online (Sandbox Code Playgroud)
您是想要做一些不同的事情,比如逐个添加元素并创建一个长度为3的新数组?你可以这样做:
val array4 = array1.zip(array2, Int::plus).toTypedArray() // 5, 7, 9
Run Code Online (Sandbox Code Playgroud)
额外的toTypedArray调用是必要只有当你真正需要一个数组,否则,你可以使用List<Int>该zip函数返回.
TWi*_*Rob 10
使用价差运算符:
var array3 = intArrayOf(*array1, *array2)
Run Code Online (Sandbox Code Playgroud)
当您需要在数组之间添加一些自定义元素时,这可能特别有用intArrayOf(7, *array1, 8, 9, *array2, 10, 11)。
音符散布比plus-ing 更有效,因为它仅创建一个结果数组。使用上述传播示例的等效版本可能会使我们多出5倍的空间,并花费5倍的时间。
| 归档时间: |
|
| 查看次数: |
11517 次 |
| 最近记录: |