Если вы используете:
for(item in items)
items
нужен метод iterator
; вы перебираете сам объект.
Если вы хотите перебрать int в диапазоне, у вас есть два варианта:
for(i in 0..limit) {
// x..y is the range [x, y]
}
Или
for(i in 0 until limit) {
// x until y is the range [x, y>
}
Оба они создают IntRange
, который расширяет IntProgression
, который реализует Iterable
. Если вы используете другие типы данных (например, float, long, double), то это тоже самое.
Для справки, это совершенно правильный код:
val x: List<Any> = TODO("Get a list here")
for(item in x){}
потому что List
является итерируемым. Int
нет, поэтому ваш код не работает.