我正在尝试IntArray像这样在Kotlin中初始化一个:
intArrayOf(1..9)
Run Code Online (Sandbox Code Playgroud)
但我得到了TypeError这Int是必需的,但我提供IntRange。有没有办法用范围初始化数组,还是我必须显式写出每个值?
使用内置函数,这就是您如何从转到IntArray的方法IntRange:
val array: IntArray = (1..9).toList().toIntArray()
Run Code Online (Sandbox Code Playgroud)
这有点浪费,因为它首先构造一个将所有元素放入的列表,然后再构造一个数组。要直接执行此操作,您可以使用自己的扩展程序,例如...
fun IntRange.toIntArray(): IntArray {
if (last < first)
return IntArray(0)
val result = IntArray(last - first + 1)
var index = 0
for (element in this)
result[index++] = element
return result
}
Run Code Online (Sandbox Code Playgroud)
这将为您提供以下语法:
val array: IntArray = (1..9).toIntArray()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
232 次 |
| 最近记录: |