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