【发布时间】:2013-02-15 08:03:36
【问题描述】:
下面这两个有区别吗..
scala> def foo() = {}
foo: ()Unit
scala> def foo() {}
foo: ()Unit
它们似乎是一样的。
两者都支持有什么原因吗?
【问题讨论】:
-
后一种形式只能用于定义返回单位的函数。第一个用于所有其他功能。
下面这两个有区别吗..
scala> def foo() = {}
foo: ()Unit
scala> def foo() {}
foo: ()Unit
它们似乎是一样的。
两者都支持有什么原因吗?
【问题讨论】:
def foo() {}
等同于(并强制执行)
def foo(): Unit = {}
同时
def foo() = {}
将应用类型推断来从方法体中确定结果类型。
因此,对于前两个选项,Unit 是唯一允许的返回类型,而在第三个选项中,返回类型取决于实现。
【讨论】:
HashMap。你可能不希望你的 API 契约指定这样一个特定的类型并且没有明确的返回类型注释,你将被绑定到那个具体的类型,以免你做出重大的改变。