web-dev-qa-db-fra.com

Comment créer un tableau vide dans kotlin?

J'utilise Array(0, {i -> ""}) à l'heure actuelle et j'aimerais savoir s'il existe une meilleure implémentation telle que Array().

de plus, si j'utilise arrayOfNulls<String>(0) as Array<String>, le compilateur m'alerte que cette distribution ne peut jamais réussir. Mais c'est l'implémentation par défaut à l'intérieur de Array(0, {i -> ""}). Est-ce que quelque chose me manque?

38
huangcd

À la fin (juin 2015), il existe une fonction de bibliothèque standard Kotlin

public fun <T> arrayOf(vararg t: T): Array<T>

Donc, pour créer un tableau vide de chaînes, vous pouvez écrire

val emptyStringArray = arrayOf<String>()
57
Martian Odyssey

Juste pour référence, il y a aussi emptyArray. Par exemple,

var arr = emptyArray<String>()

Voir

25
pt2121

tableau null 

var arrayString=Array<String?>(5){null}
var nullArray= arrayOfNulls<String>(5)
5
Ali hasan

J'ai trouvé deux façons de créer un tableau vide, la deuxième sans lambda:

var arr = Array (0, { i -> "" })
var arr2 = array<String>()

En ce qui concerne les chaînes nulles de Kotlin, cela n'est pas autorisé. Vous devez utiliser String? type pour permettre aux chaînes d'être nulles.

1
Ciprian Khlud

De cette façon, vous pouvez générer un tableau empty (pas null) de taille length:

val arr = Array(length) { emptyObject }

La note est vous devez définir une emptyObject correctement pour chaque type (car vous ne voulez pas de nulls). Par exemple. pour Strings, emptyObject peut être "". Alors:

val arr = Array(3) { "" }  // is equivalent of: arrayOf("","","")

Ici est un exemple en direct. Notez que le programme s'exécute avec deux exemples d'arguments, par défaut.


REMARQUE: pour créer un tableau de nulls, utilisez arrayOfNulls<Type>(length).

1
Mir-Ismaili

Comme mentionné ci-dessus, vous pouvez utiliser IntArray(size) ou FloatArray(size).

0
CoolMind

Utilisation:

@JvmField val EMPTY_STRING_ARRAY = arrayOfNulls<String>(0)

Il retourne un tableau de chaînes de taille 0, initialisé avec des valeurs NULL.

1. Faux:

@JvmField val EMPTY_STRING_ARRAY = emptyArray<String>()

Il retourne arrayOfNulls<String>(0)

2. Faux:

 @JvmField val EMPTY_STRING_ARRAY = arrayOf<String>()

Il retourne un tableau contenant les chaînes.

0
Alexander Savin