Kotlin初始化IntArray时如何直接生成从0到n的连续整数数组?
Kotlin初始化0到n连续数值数组实现方法
你当前代码里IntArray初始化lambda的入参i就是数组对应下标,默认从0开始计数,你额外加了1所以输出从1开始。
方案1:直接修改现有代码
去掉lambda里的+1操作即可:
val generatedArray = IntArray(10) { i -> i }
因为是单参数lambda,还可以简化为用it代替参数声明:
val generatedArray = IntArray(10) { it }
方案2:使用范围函数(可读性更高)
Kotlin标准库提供了范围生成语法,可以直接转换为数组,写法更直观:
val generatedArray = (0 until 10).toIntArray()
也可以用闭区间写法(0..9).toIntArray(),效果完全一致。如果需要自定义步长,也可以灵活调整,比如生成间隔为2的序列:
// 输出 [0,2,4,6,8] val generatedArray = (0 until 10 step 2).toIntArray()
以上两种方案的输出都符合你预期的[0,1,2,3,4,5,6,7,8,9]。
内容的提问来源于stack exchange,提问作者TrompetenTom
相关产品推荐
相关产品推荐

