Kotlin Koans 16 For loop


For loop (Playground)


Kotlin for loop iterates through anything that provides an iterator. Make the class DateRange implement Iterable<MyDate>, so that it could be iterated over. You can use the function MyDate.nextDay() defined in DateUtil.kt

for loop は、イテレータを提供するあらゆるものを繰り返します。 Iterable<MyDate> を実装した DataRange クラスを作成し、イテレートできるようにしてください。DateUtil.kt で定義されている関数 MyDate.nextDay() を使用できるようになります。


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 current: MyDate = dateRange.start
    override fun next(): MyDate {
        val result = current
        current = current.nextDay()
        return result
    override fun hasNext(): Boolean = current <= dateRange.end

fun iterateOverDateRange(firstDate: MyDate, secondDate: MyDate, handler: (MyDate) -> Unit) {
    for (date in firstDate..secondDate) {


← Posts