|
27
|
| missingfaktor Kevin Wright · 技术社区 · 16 年前 |
|
|
1
30
方法的返回类型可以是定义它的块中最后一条语句的类型,也可以是在没有块的情况下定义它的表达式的类型。
当你使用
因此,最终,在编译器复杂性和获得的收益之间的平衡中,后者被认为不值得前者。 |
|
|
2
11
这将增加编译器(和语言)的复杂性。对这样的事情进行类型推断真的很有趣。与任何与类型推断相关的操作一样,只有一个表达式时,所有操作都会更好。分散的返回语句有效地创建了许多隐式分支,这些分支很难统一。并不是说它特别重要 坚硬的 ,只是黏糊糊的。例如:
我问你,编译器在这里推断了什么?如果编译器使用显式返回语句进行推理,则需要
提高代码的清晰度,除非函数末尾只有一个显式返回。如果将代码路径视为有向图,那么很容易看出原因。正如我前面所说的,分散的回报会产生很多隐式分支,这些分支会在图中产生奇怪的叶子,在主体中也会产生很多额外的路径。只是有点怪。如果分支都是显式的(模式匹配或
因此,就像Scala中其他几个“不受欢迎”的特性一样(例如。
|
|
|
3
1
鉴于此(2.8.Beta1):
…这似乎不是疏忽。 |
|
|
4
-2
|