有没有办法从一个范围创建一个非空数组?
Is there a way to create a non-null array from a range?
在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])!! }
在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])!! }