fun trueOrFalse(exp: Boolean): String {
if (exp) return "It's true!"
return "It's false"
}
我正在读";原子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
这样的表达式是有效的,尽管它们会为无法访问的代码触发编译器警告。