If I try to compile this code...
fun main(args: Array<String>) {
for (i in 1.0..2.0) {
println(i)
}
}
... I get the error saying
For-loop range must have an 'iterator()' method
If I add a step
...
fun main(args: Array<String>) {
for (i in 1.0..2.0 step .5) {
println(i)
}
}
... then I get a new error instead:
Kotlin: Unresolved reference. None of the following candidates is applicable because of receiver type mismatch:
public infix fun CharProgression.step(step: Int): CharProgression defined in kotlin.ranges
public infix fun IntProgression.step(step: Int): IntProgression defined in kotlin.ranges
public infix fun LongProgression.step(step: Long): LongProgression defined in kotlin.ranges
public infix fun UIntProgression.step(step: Int): UIntProgression defined in kotlin.ranges
public infix fun ULongProgression.step(step: Long): ULongProgression defined in kotlin.ranges
How then can I use doubles in a range? The post Ranges Reloaded on The Kotlin Blog shows that using Double ranges is fine. I don't know what's wrong with mine.
while
loop. – Thawfor (i in 2..4) { val j = 2.0 * i; ... }
– Zarzuela