Что это за синтаксис в этом коде о лямбда Kotlin? - PullRequest
0 голосов
/ 05 февраля 2020

Я изучаю встроенную функцию Kotlin сразу после лямбды Котильна ,,,

, приведенного ниже кода, о примере встроенной функции Kotlin

Я знаю, что " return "не может быть в лямбде в Kotlin

Но что такое" return "(в строке 4)? Почему есть «возврат» в лямбде ????? Как ??

(код ниже работает ,,,)

fun main() {
    shortFunc(3){
        println("First call: $it")
        return
    }
}

inline fun shortFunc(a: Int, out: (Int)->Unit){
    println("Before calling out()")
    out(a)
    println("After calling out()")
}

1 Ответ

1 голос
/ 05 февраля 2020

В общем случае return не допускается в лямбде, но shortFunc помечается как inline. Это допускает нелокальные возвраты , и в этом конкретном c случае, когда return будет возвращать код из функции включения - то есть main, поэтому ваша программа завершается.

Вы можете узнать больше о нелокальных возвратах здесь и здесь

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