Двумерный массив Int в Котлине

Это самый простой способ объявить двумерный массив Int с указанным размером в Kotlin?

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

Вот исходный код для новых функций верхнего уровня для создания 2D-массивов. Когда Коттин что-то упустил, расширьте его. Затем добавьте проблемы 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) } 

В настоящее время это самый простой способ, мы расширим стандартную библиотеку с соответствующими функциями позже

Да, ваш данный код – самый простой способ объявить двумерный массив.

Ниже я приведу вам пример инициализации и печати 2D-массива.

 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("") } }