Solución:
De la documentación de Kotlin sobre colecciones:
Kotlin no tiene construcciones de sintaxis dedicadas para crear listas o conjuntos. Utilice métodos de la biblioteca estándar, como listOf (), mutableListOf (), setOf (), mutableSetOf ().
Actualmente, no hay listas literales para el código fuera de las anotaciones.
Como señaló @Carcigenicate, no hay sintaxis para [null, null]
.
Sin embargo, Kotlin tiene algunos métodos útiles para manejar listas y matrices.
Liza
-
lista de()
Crea una nueva lista de solo lectura.
-
listOfNotNull ()
Básicamente lo mismo que listOf (), pero sin valores nulos. Incluso se saltan cadenas vacías.
-
arrayListOf ()
Crea un ArrayList. Esta vez puede modificar (agregar / eliminar) elementos.
-
mutableListOf ()
Se comporta como arrayListOf (). En realidad, mutableListOf () usa ArrayLists internamente. Lee mas
Matrices
- gama de()
Esto crea una matriz, que es muy diferente a la mayoría de los idiomas que conoce. En lugar de estructuras de sintaxis como {1, 2, 3} o [1, 2, 3] tienes funciones en Kotlin. También obtienes funciones para matriz escrita:
- booleanArrayOf ()
- doubleArrayOf ()
- charArrayOf ()
- …
Una excepción son las anotaciones, que explican el error del compilador. [Collection literals outside of annotations]
:
@MyAnnotation(arguments = [1, 2, 3])
Sin embargo, esto podría cambiar en el futuro como se analiza aquí.
Al trabajar con matrices, es importante conocer los tipos de retorno que crean esas funciones. Como ejemplo:
Array<Int>
es un Integer[]
bajo el capó, mientras IntArray
es un primitivo int[]
al apuntar a la JVM.
Entonces, para el caso de listas mutables, puede declarar un vacío String
uno con: val list: MutableList<String> = mutableListOf()
. Nota para usar val
declaración como var
es similar a la de final
en Java. Si quisiera una lista inmutable, entonces podría usar val
al igual que: val list: List<String> = listOf("x", "y", "z")
En aras de la claridad, como ejemplo, las listas mutables pueden tener elementos agregados y eliminados después de su inicialización, mientras que las inmutables no pueden.
Documentos de listas inmutables
Documentos de lista mutable