我有这个密码
var str : CharArray
var t =0
for (k in i..i+3) {
str[t++] = array[k][j]它说必须初始化str,我不知道如何初始化。
我试过像这样初始化,但上面写着类型错配,
var array: Array<CharArray> = arrayOf("India");类型推断失败。预期类型不匹配:必需:数组找到:数组
发布于 2019-04-29 14:58:46
您可以这样初始化它:
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稍后初始化。
发布于 2019-04-29 13:26:36
如果您将CharArray声明为它,则必须立即初始化它。否则,可以指定稍后使用属性迟来初始化变量,或者可以将变量声明为CharArray并将其设置为null,也可以使用
var str : CharArray? = null
var lateinit str: CharArray发布于 2019-04-29 17:58:33
您已经声明了一个类型为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]
}https://stackoverflow.com/questions/55903777
复制相似问题