Диапазон цикла for должен иметь метод iterator () - PullRequest
0 голосов
/ 16 сентября 2018

У меня тут странная ошибка

val limit: Int = applicationContext.resources.getInteger(R.integer.popupPlayerAnimationTime)
for(i in limit) {

}

Я нашел аналогичный ответ об этой ошибке, но никто не работал для меня

1 Ответ

0 голосов
/ 16 сентября 2018

Если вы используете:

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 нет, поэтому ваш код не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...