関数定義について
def hoge() { "hoge" }
と
def piyo() = { "piyo" }
の違いは
def hoge() { "hoge" }
は返り値が無い。
ということ。
ブロックに名前を付けている(バインドしている)感じかな?
対話環境で実験するとわかりやすい。
もちろん、戻り値を明記した場合は、
def bar(a:String):String = { s }
としなければならない。
また、matchを使う場合は
def foo(a:Any) a match { ... }
とは書けないので、
def foo(a:Any) = a match { ... }
とするか、
def foo(a:Any) { a match { ... }}
の様にブロックの中に入れる必要がある。