long intarray from definir define declarar create array arrays kotlin

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.


Solo como referencia, también hay emptyArray . Por ejemplo,

var arr = emptyArray<String>()

Ver


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.