J'utilise Array(0, {i -> ""})
actuellement, et j'aimerais savoir s'il existe une meilleure implémentation telle queArray()
de plus, si j'utilise arrayOfNulls<String>(0) as Array<String>
, le compilateur m'alertera que cette distribution ne pourra jamais réussir. Mais c'est l'implémentation par défaut à l'intérieur Array(0, {i -> ""})
. Est-ce que je rate quelque chose?
Réponses:
À la fin (juin 2015), il existe la fonction de bibliothèque standard de 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>()
la source
IntArray
? En ce moment j'utilisearrayOf<Int>().toIntArray()
, y a-t-il un meilleur moyen?java.lang.ArrayIndexOutOfBoundsException:
exception.T
au lieu deString
?Juste pour référence, il y en a aussi
emptyArray
. Par exemple,var arr = emptyArray<String>()
Voir
la source
java.lang.ArrayIndexOutOfBoundsException:
comment on peut l'utiliser?0
! Il est donc utile uniquement à des fins très spéciales que vous ne vouliez pas stocker de données (vous voulez simplement du type ). UtilisezArray(length){""}
pour inclure un fichierlength
. Voir ma réponse ci-dessous pour plus de détails.Vide ou
null
? Voilà la question!Pour créer un tableau de
null
s, utilisez simplementarrayOfNulls<Type>(length)
.Mais pour générer un tableau vide de taille
length
, utilisez:val arr = Array(length) { emptyObject }
La note est que vous devez définir un
emptyObject
correctement pour chaque type de données (parce que vous ne voulez pas denull
s). Par exemple. pourString
s,emptyObject
peut être""
. Donc:val arr = Array(3) { "" } // is equivalent for: arrayOf("","","")
Voici un exemple en direct . Notez que le programme s'exécute avec deux exemples d'arguments, par défaut.
la source
tableau nul
var arrayString=Array<String?>(5){null} var nullArray= arrayOfNulls<String>(5)
la source
Utilisation:
@JvmField val EMPTY_STRING_ARRAY = arrayOfNulls<String>(0)
Il renvoie un tableau de chaînes de taille 0, initialisé avec des valeurs nulles.
1. Faux:
@JvmField val EMPTY_STRING_ARRAY = emptyArray<String>()
Il retourne
arrayOfNulls<String>(0)
2. Faux:
@JvmField val EMPTY_STRING_ARRAY = arrayOf<String>()
Il renvoie un tableau contenant les chaînes.
la source
Comme mentionné ci-dessus, vous pouvez utiliser
IntArray(size)
ouFloatArray(size)
.la source
J'ai trouvé deux façons de créer un tableau vide, la deuxième façon 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 autoriser les chaînes à être nulles.
la source