Kotlin中执行x次无索引循环:更优实现方式问询
在Kotlin中无索引执行指定次数循环的最优写法
当然有!Kotlin针对这种“只需要重复执行代码x次、不需要用到循环索引”的场景,提供了非常优雅的解决方案,下面给你梳理几种实用的写法:
- 首选:使用标准库的
repeat函数
这是最贴合需求、可读性最高的写法,Kotlin标准库专门为重复执行逻辑提供了这个函数,完全不需要处理索引:
val x = 5 repeat(x) { // 这里写你要重复执行的代码,比如打印日志、调用方法等 println("执行一次循环") }
repeat函数的第一个参数是重复次数,第二个参数是一个无参的Lambda(如果你不需要索引的话,就直接用这个形式),语义非常明确——“重复x次执行这段代码”,维护代码的人一眼就能看懂意图。
- 备选:范围遍历+忽略索引
如果你习惯用范围的写法,也可以用(1..x).forEach,不过这里Lambda里的it会是当前的索引值,但如果你完全不需要用到它,也可以这么写:
val x = 5 (1..x).forEach { _ -> println("执行一次循环") }
这里用_表示我们明确要忽略这个索引参数,不过这种写法的语义不如repeat清晰,毕竟(1..x)本质是遍历一个数值范围,而不是单纯的“重复执行”,所以除非有特殊场景,否则更推荐repeat。
- 不推荐:用序列生成(过度设计)
还有一种用序列的写法可以实现,但完全没必要,属于过度设计,这里仅作了解:
val x = 5 generateSequence { Unit }.take(x).forEach { println("执行一次循环") }
这种写法虽然能达到效果,但可读性差,也不符合Kotlin的简洁风格,所以不推荐使用。
总的来说,repeat函数是这种场景下的最优解,简洁、语义明确,完美满足你“无需声明索引i”的需求。
内容的提问来源于stack exchange,提问作者Elye
相关产品推荐
相关产品推荐

