You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin编写for循环时索引变量无法正常使用该如何解决?

Kotlin创建填充随机数列表报错问题解答

原代码错误原因

  • 列表类型不符合需求:listOf<Int>()生成的是不可变列表,仅支持读取元素,不支持修改、增删元素,因此myList[i] = 随机数的赋值操作会直接报错
  • 循环逻辑错误:初始化的myList是空列表,for (i in myList)是遍历列表现有元素,空列表不会触发任何循环逻辑;同时这里的i是列表存储的元素值,并非你预期的索引下标,完全不能用作下标访问
  • 长度不匹配:即使解决上述两个问题,空列表不存在对应索引位置,也无法完成赋值操作

现有可运行代码优化建议

你提供的可运行代码已经解决了核心问题,改用了mutableListOf生成可变列表,通过add()方法追加元素,但存在两个小问题可以调整:

  • 你需要长度为10的列表,0..10是前后闭合的区间,会循环11次生成11个元素,调整为0 until 10或者直接使用repeat(10)更符合需求
  • 循环内重复声明int变量属于冗余代码,无需额外定义中间变量,可以直接把生成的随机数添加到列表中

优化后的实现代码

// 写法1:手动循环实现,逻辑清晰易读
val myList = mutableListOf<Int>()
repeat(10) {
    myList.add((1..100).random())
}

// 写法2:Kotlin 惯用写法,直接生成目标列表,无需手动操作可变集合
val myList = List(10) { (1..100).random() }

内容的提问来源于stack exchange,提问作者Noccis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 02:12:01