1

次の2つの間に違いはありますか。

scala> def foo() = {}
foo: ()Unit

scala> def foo() {}
foo: ()Unit

それらは同じようです。
両方がサポートされている理由はありますか?

4

1 に答える 1

6
def foo() {}

と同等です(そして強制します)

def foo(): Unit = {}

その間

def foo() = {}

タイプ推論を適用して、メソッドの本体から結果タイプを判別します。

したがって、最初の2つのオプションでUnitは、が唯一の許可される戻りタイプですが、3番目のオプションでは、戻りタイプは実装によって異なります。

于 2013-02-15T00:03:36.730 に答える