【发布时间】:2019-01-12 12:17:39
【问题描述】:
这是我的以下代码
val idNumber: String = "1342342"
var randomNumber = 0
for (number in idNumber) {
if (randomNumber < 20) {
// Do something
randomNumber++
}
}
这里我有一个 for 循环,它遍历 idNumber,同时我必须检查 randomNumber 是否小于 20。
在Java中,我可以这样写
for (int i = 0 ; i < idNumber.length() && randomNumber < 20 ; i++) {
}
我如何在 Kotlin 中做同样的事情?
我通过 Stackoverflow 解决了这个问题,发现了这个 solution,它解释了使用更实用的方法。请为我上面提到的问题提出一个好的解决方案。
编辑 1:我知道 while 循环可用于执行逻辑与,但我想知道解决此问题的功能方法是什么。
编辑 2:添加了答案,但仍然希望听到可以更好地了解此问题的人的意见
【问题讨论】:
-
我认为您当前的解决方案很好; Kotlin 的
for循环本质上是不同的,并且无法模拟某些 Java 构造。此外,短代码不一定比(主观上)更易理解的代码更好。 -
链接答案使用范围(0..5),我没有范围。我最近开始使用 Kotlin,但我不确定我是否做得对。所以我想从其他更精通 Kotlin 的开发人员那里获得更好的视角。
-
你可以简单地使用字符串本身(字符串和范围都是可迭代的)。
-
@Moira 我认为应该这样做。