以下は同等です。
scala> val f1 = {i: Int => i == 1}
f1: Int => Boolean = <function1>
scala> val f2 = (i: Int) => i == 1
f2: Int => Boolean = <function1>
私は前者(Groovyから来ています)に精通していますが、後者の形式ははるかに一般的で、Scalaで関数を定義する標準的な方法であるAFAIKです。
過去(Groovy)を忘れて、2番目の形式を採用する必要がありますか?最初の形式は、クロージャ(関数)を定義するGroovy / Ruby / Javascriptの方法に似ているため、私にとってはより自然です。
編集このスレッド
のZeigerの回答を参照してください。たとえば、groovy / ruby / javascriptのクロージャ構文は、両方を同じパフォーマンス、パスアラウンド機能などで交換可能に使用できると想定するよりも自然に見え、唯一の違いは構文です。{=>}
() =>