LINUX.ORG.RU

История изменений

Исправление Legioner, (текущая версия) :

Думаю, этот пример чуть лучше объяснит, почему return так работает и зачем это сделали.

inline fun forEachInt(array: Array<Int>, body: (Int) -> Unit) {
    var i = 0
    while (i < array.size) {
        body(array[i])
        i++
    }
}


fun findFirstEven1(arr: Array<Int>): Int {
    forEachInt(arr) { x ->
        if (x % 2 == 0) {
            return x
        }
    }
    return -1
}

fun findFirstEven2(arr: Array<Int>): Int {
    for (x in arr) {
        if (x % 2 == 0) {
            return x
        }
    }
    return -1
}

Исходная версия Legioner, :

Думаю, этот пример чуть лучше объяснит, почему return так работает и зачем это сделали.

inline fun forEachInt(array: Array<Int>, body: (Int) -> Unit) {
    var i = 0
    while (i < array.size) {
        body(array[i])
        i++
    }
}

fun findFirstEven(arr: Array<Int>): Int {
    forEachInt(arr) { x ->
        if (x % 2 == 0) {
            return x
        }
    }
    return -1
}