Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin 迭代器函数不处理内部变量_Kotlin - Fatal编程技术网

Kotlin 迭代器函数不处理内部变量

Kotlin 迭代器函数不处理内部变量,kotlin,Kotlin,我正在完成Kotlin Koans的练习,我想知道为什么: class DateRange(val start: MyDate, val end: MyDate) : Iterable<MyDate> { override fun iterator(): Iterator<MyDate> = DateIterator(this) } class DateIterator(val daterange: DateRange) : Iterator<MyDate

我正在完成Kotlin Koans的练习,我想知道为什么:

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

    }
}
class日期范围(val开始:MyDate,val结束:MyDate):可编辑{
重写有趣的迭代器():迭代器=日期迭代器(this)
}
类DateIterator(val daterange:daterange):迭代器{
var currentDay:MyDate=daterange.start
重写fun hasNext():Boolean=currentDay.next()
考虑到
currentDay
是一个
MyDate
对象,而
next()
返回一个
MyDate

但是在
MyDate
类上没有方法
next()
(这就是错误消息试图说的)。因此
currentDay.next()
将不会编译

DateIterator
类上只有
next()
(当然,您不想调用它,因为它会产生推进迭代器的副作用)

您一定想调用
currentDay.nextDay()

您是否在
MyDate
类中定义了
next()
方法?