Veo que Kotlin tiene ByteArray, ShortArray, IntArray, CharArray, DoubleArray, FloatArray
, que son equivalentes a byte[], short[], int[],char[], double[], float[]
en Java.
Ahora me pregunto, ¿hay algún StringArray
equivalente al de Java String[]
?
typealias StringArray = Array<String>
;)Respuestas:
No hay caso especial para el
String
, porqueString
es un tipo de referencia ordinaria en la JVM, en contraste con las primitivas de Java (int
,double
, ...) - almacenándolos en una referenciaArray<T>
requiere el boxeo en objetos comoInteger
yDouble
. El propósito de las matrices especializadas comoIntArray
en Kotlin es almacenar primitivas no encajonadas, deshacerse de los gastos generales de boxeo y desempaquetado (lo mismo que Java enint[]
lugar deInteger[]
).Puede usar
Array<String>
(yArray<String?>
para nulables), que es equivalente aString[]
en Java:Ver también: matrices en la referencia del idioma
fuente
use arrayOf , arrayOfNulls , emptyArray
fuente
Para crear un vacío
Array of Strings
en Kotlin, debe usar uno de los siguientes seis enfoques:Primer enfoque:
Segundo enfoque:
Tercer enfoque:
Cuarto enfoque:
Quinto enfoque:
Sexto enfoque:
fuente
Esos tipos están ahí para que pueda crear matrices de las primitivas, y no los tipos en caja. Como String no es un primitivo en Java, solo puede usarlo
Array<String>
en Kotlin como el equivalente de un JavaString[]
.fuente
Para
Strings
y otros tipos, solo usaArray<*>
. La razónIntArray
y otras existen es para evitar el autoboxing.Entonces se
int[]
relaciona conIntArray
donde seInteger[]
relacionaArray<Int>
.fuente
Algunas de las formas comunes de crear una matriz de cadenas son
Esto creará una matriz de 5 cadenas con valores iniciales para ser una cadena vacía.
<String?>
(5)Esto creará una matriz de tamaño 5 con valores iniciales que serán nulos. Puede usar datos de cadena para modificar la matriz.
Cuando ya conozca el contenido de la matriz, puede inicializar la matriz directamente.
También hay una manera fácil de crear una matriz multidimensional de cadenas.
matriz var = matriz (5) {matriz (6) {""}}
Así es como puede crear una matriz con 5 filas y 6 columnas con valores iniciales de cadena vacía.
fuente
Este ejemplo funciona perfectamente en Android
En kotlin puedes usar una expresión lambda para esto. La definición de Kotlin Array Constructor es:
Lo que evalúa a:
O:
En este ejemplo, la definición del campo fue:
Espero que esto ayude
fuente
también puedes usar:
por ejemplo.
fuente