なぜこれが機能するのですか:
val addOne = {a : Int => a + 1 }
しかし、これはそうではありません:
val addOne = a: Int => a + 1
私が理解している限り、どちらも 1 つの入力パラメーターを持つ無名関数を宣言しています。
なぜこれが機能するのですか:
val addOne = {a : Int => a + 1 }
しかし、これはそうではありません:
val addOne = a: Int => a + 1
私が理解している限り、どちらも 1 つの入力パラメーターを持つ無名関数を宣言しています。
パラメータ リストは括弧で囲む必要があります。
val addOne = (a: Int) => a + 1
完全な構文については、言語仕様を参照してください。
関数を定義して値に割り当てるためです。
{ a: Int => a + 1 }
定義済み関数です。この方法でも関数を定義できます。
(a: Int) => a + 1
また
(a: Int) => { a + 1 }
同じです。穴の式を囲む括弧を使用したくない場合は、パラメーターリストを括弧で囲んで機能させるだけです。