Как инициализировать и использовать charArray в Kotline - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть этот код

 var str : CharArray


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

, и он говорит, что str должен быть инициализирован, я не знаю, как инициализировать.

Я пытался инициализировать, как это, но он говорит типнесоответствие,

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

Ошибка вывода типа.Ожидаемое несоответствие типов: требуется: Массив найден: Массив

Ответы [ 3 ]

2 голосов
/ 29 апреля 2019

Вы можете инициализировать его так:

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

Или вы можете использовать lateinit для последующей инициализации

0 голосов
/ 29 апреля 2019

Вы объявили переменную типа CharArray, но не присвоили ее ни одному экземпляру.

Прежде чем вы сможете установить элементы этого CharArray, вы должны создать экземпляр CharArray. Похоже, вы заранее знаете размер этого массива, тогда вы можете использовать следующий конструктор массива:

// 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

Бонус: если у вас есть функция, которая может предоставить значение элемента массива по его индексу, вы можете использовать аналогичный конструктор для создания экземпляра и инициализации его элементов сразу:

val str = CharArray(4) { index -> 
    array[i + index][j]
}
0 голосов
/ 29 апреля 2019

Если вы объявляете свой CharArray как его, вы должны немедленно инициализировать его.В противном случае вы можете указать, что вы будете инициализировать его позже со свойством lateinit , или вы можете объявить вашу переменную как CharArray и установить ее в null, или вы можете использовать

var str : CharArray? = null
var lateinit str: CharArray
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...