【发布时间】:2018-06-26 20:48:21
【问题描述】:
这个问题听起来很傻,但里面没有错字。
fun test(): Any {
return return true
}
这在 Kotlin 中实际上是可能的。虽然编译器警告
无法访问的代码
用于外部返回。但这只是一个警告。
我不想将 Java 与 Kotlin 进行比较,但我很感兴趣在 Java 中是否同样适用。
public class Test {
// ...
static int test() {
return return 1;
}
}
没有!
/Test.java:8: 错误:表达式的非法开始
返回 返回 1;
^
/Test.java:8: 错误:不是声明
返回 返回 1;
^
2 个错误
为什么要这样设计 Kotlin?
【问题讨论】:
-
Kotlin 是基于表达式的,所以大多数东西都是表达式,可以用作其他表达式的参数,包括
return。 Java是基于语句的,所以很多东西都是只能出现在顶层的语句。近年来,基于表达式的语言似乎出现了(非常偶然,恕我直言)趋势。