tutorial español ejemplos compiler kotlin

español - ¿Cuál es el equivalente de Kotlin de la cadena de Java[]?



kotlin vs java (7)

Veo que Kotlin tiene ByteArray, ShortArray, IntArray, CharArray, DoubleArray, FloatArray , que son equivalentes a byte[], short[], int[],char[], double[], float[] en Java en consecuencia.

Ahora me pregunto, ¿hay algún StringArray equivalente al String[] de Java String[] ?


Para crear una Array of Strings vacía en Kotlin, debe usar uno de los siguientes seis enfoques:

Primer enfoque:

val empty = arrayOf<String>()

Segundo enfoque:

val empty = arrayOf("","","")

Tercer enfoque:

val empty = Array<String?>(3) { null }

Cuarto enfoque:

val empty = arrayOfNulls<String>(3)

Quinto enfoque:

val empty = Array<String>(3) { "it = $it" }

Sexto enfoque:

val empty = Array<String>(0, { _ -> "" })


Esos tipos están ahí para que pueda crear matrices de las primitivas, y no los tipos en caja. Dado que String no es un primitivo en Java, puede usar Array<String> en Kotlin como el equivalente de un Java String[] .


Este ejemplo funciona perfectamente en Android

En kotlin puedes usar una expresión lambda para esto. La definición de Kotlin Array Constructor es:

Array(size: Int, init: (Int) -> T)

Lo que evalúa a:

skillsSummaryDetailLinesArray = Array(linesLen) { i: Int -> skillsSummaryDetailLines!!.getString(i) }

O:

skillsSummaryDetailLinesArray = Array<String>(linesLen) { i: Int -> skillsSummaryDetailLines!!.getString(i) }

En este ejemplo, la definición del campo fue:

private var skillsSummaryDetailLinesArray: Array<String>? = null

Espero que esto ayude


No hay un caso especial para String , porque String es un tipo de referencia ordinario en JVM, en contraste con las primitivas de Java ( int , double , ...) : almacenarlas en una Array<T> referencia Array<T> requiere encerrarlas en objetos como Integer y Double . El propósito de las matrices especializadas como IntArray en Kotlin es almacenar primitivas no encajonadas, deshacerse de los gastos generales de boxeo y desempaquetado (lo mismo que Java int[] lugar de Integer[] ).

Puede usar Array<String> (y Array<String?> Para nulables), que es equivalente a String[] en Java:

val stringsOrNulls = arrayOfNulls<String>(10) // returns Array<String?> val someStrings = Array<String>(5) { "it = $it" } val otherStrings = arrayOf("a", "b", "c")

Ver también: matrices en la referencia del idioma


Para Strings y otros tipos, solo usa Array<*> . La razón por la que existen IntArray y otros es para evitar el autoboxing.

Entonces int[] relaciona con IntArray donde Integer[] relaciona con Array<Int> .


también puedes usar:

val frases = arrayOf("texto01","texto02 ","anotherText","and ")

por ejemplo.


use arrayOf , arrayOfNulls , emptyArray

var colors_1: Array<String> = arrayOf("green", "red", "blue") var colors_2: Array<String?> = arrayOfNulls(3) var colors_3: Array<String> = emptyArray()