0
votes

Comment initialiser et utiliser charArray dans Kotlin

J'ai ce code

var array: Array<CharArray> = arrayOf("India");

et il dit que str doit être initialisé, je ne sais pas comment initialiser.

J'ai essayé d'initialiser comme ça, mais cela indique une incompatibilité de type,

 var str : CharArray


var t =0
for (k in i..i+3) {
    str[t++] = array[k][j]

L'inférence de type a échoué. Non-correspondance de type attendue: obligatoire: tableau trouvé: tableau


0 commentaires

3 Réponses :


0
votes

Si vous déclarez votre CharArray comme tel, vous devez l'initialiser immédiatement. Sinon, vous pouvez spécifier que vous l'initialiserez plus tard avec la propriété lateinit , ou vous pouvez déclarer votre variable en tant que CharArray et la définir sur null, ou vous pouvez utiliser un

var str : CharArray? = null
var lateinit str: CharArray


0 commentaires

3
votes

Vous pouvez l'initialiser de cette façon:

var str : CharArray = CharArray(3) //if you know size
var str : CharArray = charArrayOf() //creates empty array
var str : CharArray? = null //makes your array nullable

Ou vous pouvez utiliser lateinit pour une initialisation plus tard


2 commentaires

la taille sera connue après la saisie de l'utilisateur,


Donc, j'ai recommandé d'utiliser charArrayOf() . Et après l'entrée de l'utilisateur, vous pouvez définir ce champ sur un nouveau CharArray avec une taille connue



0
votes

Vous avez déclaré une variable de type CharArray , mais ne l'avez affectée à aucune instance.

Avant de pouvoir définir des éléments de ce CharArray , vous devez créer une instance de CharArray . Il semble que vous connaissiez la taille de ce tableau à l'avance, vous pouvez alors utiliser le constructeur de tableau suivant:

val str = CharArray(4) { index -> 
    array[i + index][j]
}

Point bonus: si vous avez une fonction qui peut fournir une valeur d'élément de tableau compte tenu de son index, vous pouvez utiliser le constructeur similaire pour créer une instance et initialiser ses éléments à la fois:

// creates an instance of CharArray of 4 elements, filled with \u0000 chars
val str = CharArray(4)  

// after that you can set elements in the array


0 commentaires