Kotlin中的二维Int数组

在Kotlin中声明指定大小的二维Int数组是否是最简单的方法?

 val board = Array(n, { IntArray(n) }) 

这里是创建二维数组的新顶级函数的源代码。 当Kotlin缺少某些东西时,扩展它。 然后添加您想要建议的事情的YouTrack问题并跟踪状态。 尽管在这种情况下,它们并不比上面短得多,但至少为正在发生的事情提供了更明显的命名。

 public inline fun <reified INNER> array2d(sizeOuter: Int, sizeInner: Int, noinline innerInit: (Int)->INNER): Array<Array<INNER>> = Array(sizeOuter) { Array<INNER>(sizeInner, innerInit) } public fun array2dOfInt(sizeOuter: Int, sizeInner: Int): Array<IntArray> = Array(sizeOuter) { IntArray(sizeInner) } public fun array2dOfLong(sizeOuter: Int, sizeInner: Int): Array<LongArray> = Array(sizeOuter) { LongArray(sizeInner) } public fun array2dOfByte(sizeOuter: Int, sizeInner: Int): Array<ByteArray> = Array(sizeOuter) { ByteArray(sizeInner) } public fun array2dOfChar(sizeOuter: Int, sizeInner: Int): Array<CharArray> = Array(sizeOuter) { CharArray(sizeInner) } public fun array2dOfBoolean(sizeOuter: Int, sizeInner: Int): Array<BooleanArray> = Array(sizeOuter) { BooleanArray(sizeInner) } 

和用法:

 public fun foo() { val someArray = array2d<String?>(100, 10) { null } val intArray = array2dOfInt(100, 200) } 

目前这是最简单的方法,我们稍后将扩展标准库和适当的功能

是的,您提供的代码是声明二维数组的最简单的方法。

下面,我给你一个二维数组初始化和打印的例子。

 fun main(args : Array<String>) { var num = 100 // Array Initialization var twoDArray = Array(4, {IntArray(3)}) for(i in 0..twoDArray.size - 1) { var rowArray = IntArray(3) for(j in 0..rowArray.size - 1) { rowArray[j] = num++ } twoDArray[i] = rowArray } // Array Value Printing for(row in twoDArray) { for(j in row) { print(j) print(" ") } println("") } }