2015-03-28 11 views

risposta

4

Non sono sicuro se questo è il modo migliore per farlo, ma si può definire un Int un'estensione che crea un IntRange da (limite inferiore 1) a (limite superiore - 1).

fun Int.exclusiveRangeTo(other: Int): IntRange = IntRange(this + 1, other - 1) 

e poi utilizzarlo in questo modo:

for (i in 1 exclusiveRangeTo n) { //... } 

Here è possibile trovare ulteriori dettagli su come gamme di lavoro.

43

È possibile utilizzare la funzione until nella stdlib Kotlin:

for (i in 1 until 5) { 
    println(i) 
} 

che stamperà:

1 
2 
3 
4 
+0

Nota: In Kotlin 1.1, l'utilizzo di "fino" con numeri interi non genera lo stesso ottimizzato codice come scritto: for (i in 1..n-1) {...} – BladeCoder

+0

@BladeCoder è ancora valido per Kotlin 1.2? – leoderprofi

+2

@leoderprofi Sì, le cose sono cambiate. "until until" ora è ottimizzato da Kotlin 1.1.4 – BladeCoder