Estoy tratando de inicializar un IntArray en Kotlin así:
intArrayOf(1..9) Pero obtengo un TypeError que indica que se requiere Int , pero estoy proporcionando un IntRange . ¿Hay alguna manera de inicializar la matriz con un rango, o tengo que escribir explícitamente cada valor?
Usando funciones integradas, así es como podría llegar a un IntArray desde un IntRange :
val array: IntArray = (1..9).toList().toIntArray()Esto es un poco derrochador, porque primero construye una lista donde pone todos los elementos, y luego también construye una matriz. Para hacer esto directamente, podría usar su propia extensión, algo así como...
fun IntRange.toIntArray(): IntArray { if (last < first) return IntArray(0) val result = IntArray(last - first + 1) var index = 0 for (element in this) result[index++] = element return result }Lo que te daría esta sintaxis:
val array: IntArray = (1..9).toIntArray()