Какая разница между def foo = {} и def foo () = {} в Scala?

, учитывая следующие конструкции для определения функции в Scala, можете ли вы объяснить, какая разница, и какие последствия будут?

def foo = {}

против.

def foo() = {}

Обновление

Спасибо за быстрые ответы. Это здорово. Единственный вопрос, который остается для меня, это:

Если я пропущу скобки, есть еще способ пройти функцию вокруг? Это то, что я получаю в reft:

scala> def foo = {}
foo: Unit

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

scala> def test(arg: () => Unit) = { arg }
test: (arg: () => Unit)() => Unit

scala> test(foo)
:10: error: type mismatch;
 found   : Unit
 required: () => Unit
              test(foo)
                   ^

scala> test(baz)
res1: () => Unit = 

Обновление 2012-09-14

Вот несколько подобных вопросов, которые я заметил:

  1. разница между функцией с скобками и без
  2. Scala методы без аргументов

53
задан Community 23 May 2017 в 00:31
поделиться