arrays - intarray - kotlin create array from range
¿Cómo crear una matriz vacía en kotlin? (7)
Estoy usando
Array(0, {i -> ""})
actualmente, y me gustaría saber si hay una mejor implementación como
Array()
Además, si estoy usando
arrayOfNulls<String>(0) as Array<String>
, el compilador me alertará de que este reparto nunca puede tener éxito.
Pero es la implementación predeterminada dentro de
Array(0, {i -> ""})
.
¿Echo de menos algo?
¿Vacío o
null
?
¡Esa es la pregunta!
Para crear una matriz de
null
, simplemente use
arrayOfNulls<Type>(length)
.
Pero para generar una matriz
vacía
de
length
de tamaño, use:
val arr = Array(length) { emptyObject }
La nota es
que
debe
definir un objeto
emptyObject
correctamente por cada tipo (porque no desea
null
).
P.ej.
para
String
s,
emptyObject
puede ser
""
.
Asi que:
val arr = Array(3) { "" } // is equivalent for: arrayOf("","","")
Here hay un ejemplo en vivo . Tenga en cuenta que el programa se ejecuta con dos argumentos de muestra, por defecto.
A finales de junio de 2015, existe la función de biblioteca estándar de Kotlin
public fun <T> arrayOf(vararg t: T): Array<T>
Entonces, para crear una matriz vacía de cadenas, puede escribir
val emptyStringArray = arrayOf<String>()
Como se mencionó anteriormente, puede usar
IntArray(size)
o
FloatArray(size)
.
Encontré dos formas de crear una matriz vacía, la segunda sin una lambda:
var arr = Array (0, { i -> "" })
var arr2 = array<String>()
Con respecto a las cadenas nulas de Kotlin, esto no está permitido. Tienes que usar String? escriba para permitir que las cadenas sean nulas.
matriz nula
var arrayString=Array<String?>(5){null}
var nullArray= arrayOfNulls<String>(5)
Utilizar:
@JvmField val EMPTY_STRING_ARRAY = arrayOfNulls<String>(0)
Devuelve una matriz de cadenas de tamaño 0, inicializadas con valores nulos.
1. Incorrecto:
@JvmField val EMPTY_STRING_ARRAY = emptyArray<String>()
Devuelve
arrayOfNulls<String>(0)
2. Incorrecto:
@JvmField val EMPTY_STRING_ARRAY = arrayOf<String>()
Devuelve una matriz que contiene las cadenas.