在Java中,可以使用传统的for循环来创建一个简单的数组:

ImageButton[] buttons = new ImageButton[count];

for (int i = 0; i < count; i++) {
   buttons[i] = view.findViewById(BUTTON_IDS[i]);
}

简单地转换为Kotlin会得到以下结果:
val buttons = arrayOfNulls<ImageButton>(count)

for (i in 0..count) {
    buttons[i] = view.findViewById<ImageButton>(BUTTON_IDS[i])
}

问题是现在数组中的每个元素都是可选的。这使我的代码与?运算符混为一谈。

有没有办法以类似的方式创建数组,但是没有可选类型?

最佳答案

是的,使用constructor of Array :

val buttons = Array(count) { view.findViewById<ImageButton>(BUTTON_IDS[it])!! }

关于arrays - 有没有一种方法可以从范围创建非空数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46245939/

10-12 00:28