Array Int bidimensional en Kotlin

¿Es la forma más fácil de declarar la matriz Int bidimensional con el tamaño especificado en Kotlin?

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

Aquí hay un código fuente para nuevas funciones de nivel superior para crear matrices 2D. Cuando a Kotlin le falta algo, extiéndelo. Luego agregue los problemas de YouTrack para las cosas que desea sugerir y rastree el estado. Aunque en este caso no son mucho más cortos que los anteriores, al less proporciona un nombre más obvio para lo que está sucediendo.

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

Y el uso:

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

Actualmente esta es la forma más fácil, ampliaremos la biblioteca estándar con las funciones apropiadas más adelante

Sí, su código dado es la forma más fácil de declarar una matriz bidimensional.

A continuación, le doy un ejemplo de initialization e printing de matriz 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("") } } 
  • ¿Cómo comparar dos matrices en Kotlin?
  • Kotlin y ejemplificación de matriz detallada
  • ¿Hay alguna manera de crear una matriz no nula a partir de un range?
  • ¿Cómo implementar readLine () !!. ToIntArray () en Kotlin?
  • ¿Cómo convertir una list borrada por types a una matriz en Kotlin?
  • Método igual para class de datos en kotlin
  • Inicialización de Kotlin 2d Array
  • Kotlin: cómo crear una matriz 2D del tipo String
  • ¿Cómo crear una matriz vacía en kotlin?
  • Cómo escribir Short / Int en buffer de 1 byte
  • Inicializando matrices en kotlin