在Java中,数组可以这样初始化:
int numbers[] = new int[] {10, 20, 30, 40, 50}
Kotlin的数组初始化是怎样的?
在Java中,数组可以这样初始化:
int numbers[] = new int[] {10, 20, 30, 40, 50}
Kotlin的数组初始化是怎样的?
当前回答
val numbers: IntArray = intArrayOf(10, 20, 30, 40, 50)
详见Kotlin -基本类型。
你也可以提供一个初始化函数作为第二个参数:
val numbers = IntArray(5) { 10 * (it + 1) }
// [10, 20, 30, 40, 50]
其他回答
当初始化下面的字符串检查
val strings = arrayOf("January", "February", "March")
我们可以使用原始int数组专用的arrayOf方法简单地初始化它:
val integers = intArrayOf(1, 2, 3, 4)
老问题了,但如果你想使用一个范围:
var numbers: IntArray = IntRange(10, 50).step(10).toList().toIntArray()
产生几乎相同的结果:
var numbers = Array(5, { i -> i*10 + 10 })
结果:10,20,30,40,50
我认为第一个选项更有可读性。这两个工作。
在全局声明int array
var numbers= intArrayOf()
方法用value初始化数组
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//create your int array here
numbers= intArrayOf(10,20,30,40,50)
}
在我的情况下,我需要初始化我的抽屉项目。我通过以下代码填充数据。
val iconsArr : IntArray = resources.getIntArray(R.array.navigation_drawer_items_icon)
val names : Array<String> = resources.getStringArray(R.array.navigation_drawer_items_name)
// Use lambda function to add data in my custom model class i.e. DrawerItem
val drawerItems = Array<DrawerItem>(iconsArr.size, init =
{ index -> DrawerItem(iconsArr[index], names[index])})
Log.d(LOGGER_TAG, "Number of items in drawer is: "+ drawerItems.size)
自定义模型类-
class DrawerItem(var icon: Int, var name: String) {
}
你可以试试这个:
var a = Array<Int>(5){0}