Я выполняю упражнение для цикла Котлина Коанса и задаюсь вопросом, почему:
class DateRange(val start: MyDate, val end: MyDate) : Iterable<MyDate> {
override fun iterator(): Iterator<MyDate> = DateIterator(this)
}
class DateIterator(val daterange: DateRange) : Iterator<MyDate> {
var currentDay: MyDate = daterange.start
override fun hasNext(): Boolean = currentDay.next() <= daterange.end
override fun next(): MyDate {
val result = currentDay
currentDay = currentDay.nextDay()
return result
}
}
Я получаю Unresolved reference: next
на currentDay()
.
Я знаю, что ответом на этот вопрос является точно такой же код без next()
, но мне интересно, почему он не работает - учитывая, что currentDay
является MyDate
объектом, а next()
возвращаетMyDate
.
Есть идеи, почему?