Я совсем новичок в Котлине.Я нажал на эту часть, пока просматривал документы:
«лямбда не может вернуться из функции включения» (если она не встроена).
Итак, это не работает;
fun foo() {
ordinaryFunction {
return // ERROR: cannot make `foo` return here
}
}
Интересно, почему это так работает?
Единственное, о чем я могу думать, это опасно, поскольку могут быть некоторые дополнительные действия, которые может выполнять функция включения после выполнения лямбда-выражения.Но я не уверен, что это причина, потому что вы можете преодолеть это, используя квалифицированные возвраты или используя ключевое слово inline
.Таким образом, этот тип подразумевает, что за этим стоит техническая причина (кроме каких-либо соображений удобства использования / безопасности), например, компилятор не может выяснить, куда возвращаться, если он не помечен или встроен.
Любая помощь будет отличной!