如何用 Kotlin 编写此 Java 代码?
//Java
for (int i = 10; i > 0; i--);
如您所见,“i”不能为零。
我知道这个可以用“downTo”来完成,像这样:
for (i in 10 downTo 0)
但是“downTo”包含零。我希望它不包含零。我的问题是,在 Kotlin 中有没有办法做到这一点?(只在“for 循环”中实现,不改变零或十,也不用任何额外的“if”语句)
如何用 Kotlin 编写此 Java 代码?
//Java
for (int i = 10; i > 0; i--);
如您所见,“i”不能为零。
我知道这个可以用“downTo”来完成,像这样:
for (i in 10 downTo 0)
但是“downTo”包含零。我希望它不包含零。我的问题是,在 Kotlin 中有没有办法做到这一点?(只在“for 循环”中实现,不改变零或十,也不用任何额外的“if”语句)
目前没有内置方法可以创建具有唯一终止值的递减数列。KT -24658
downUntil
中提出了一个创建此类数列的函数,目前处于“待讨论”状态。如果您有实际用例,可以方便地使用,我鼓励您参与讨论。downUntil
自己编写这样的函数很容易:
但是,与内置的 不同
downTo
,编译器不会将其优化为字节码中的 C 风格 for 循环。它会创建一个IntProgression
对象并使用它iterator()
运行循环。我建议
10 downTo 1
暂时使用。