Scala不对返回语句进行类型推断?为什么不?

时间:2011-09-05 02:20:11

标签: scala return-value type-inference return

  

可能重复:
  Type Inference on Method Return Type

这解决了与this post相同的主题。

有人问为什么Scala不对返回语句进行类型推断。

Daniel Sobral回答说,它会“增加编译器的复杂性并减慢它的速度”。

我实际上并不相信这一点。编译器必须查看可能的返回值列表,这些值可以在函数中的任何位置发生(例如,在if / then或match语句的多个分支中)。它已经无法进行统一和类型推断,直到它到达函数的末尾。将显式返回语句的值添加到统一值集合中应该基本上无需额外工作

我想听听Scala开发人员的意见。这是故意阻止回复陈述吗? (IMO,在复杂的函数中,明确的'return'语句是好的东西,因为它澄清了控制从函数中退出的确切位置。)

0 个答案:

没有答案