有没有办法从一个范围创建一个非null数组?

在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(count) for (i in 0..count) { buttons[i] = view.findViewById(BUTTON_IDS[i]) } 

这个问题是,现在数组中的每个元素是可选的; 这与我的代码谜语? 运营商。

有没有办法以类似的方式创建一个数组,但没有可选的types?

是的,使用Array的构造函数 :

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