fun trueOrFalse(exp: Boolean): String {
if (exp) return "It's true!"
return "It's false"
}
Я читал книгу «atomic kotlin», где говорится, что эта функция содержит 2 выражения, поэтому я просто хотел, чтобы функция возвращала также выражение в kotlin?
В отличие от большинства языков программирования, Kotlin рассматривает return ...
не как оператор, а как выражение.
Тип, который компилятор выводит для таких выражений, — Nothing
, что означает, что выражение никогда ничего не оценивает, и поток управления никогда не продолжается нормально после такого выражения (аналогично throw
-выражениям).
Пример, демонстрирующий, что это выражение:
val x = when (coin) {
0 -> 123
1 -> (return 456) as Nothing
else -> error("unexpected coin value")
}
Поскольку типом выражения return ...
является Nothing
, нет особого смысла использовать его как часть других составных выражений. Однако есть случаи, когда это удобно:
val x = if (foo) bar() else return baz()
val x = foo() ?: return bar()
Забавный факт: такие выражения, как return return return 5
, допустимы, хотя они вызывают предупреждение компилятора о недостижимом коде.
Да, это. Это все, что вам нужно?