1
複数のパラメータリストを持つscalaで簡単なメソッドを宣言しようとしています。複数のパラメータリストを持つ匿名関数
これらの2つが機能します。
scala> def add(a:Int, b:Int) = a+ b
add: (a: Int, b: Int)Int
scala> def add(a:Int)(b:Int) = a + b
add: (a: Int)(b: Int)Int
これは...
scala> val add = (a:Int)(b:Int)=>a + b
<console>:1: error: not a legal formal parameter.
Note: Tuples cannot be directly destructured in method or function parameters.
Either create a single parameter accepting the Tuple1,
or consider a pattern matching anonymous function: `{ case (param1, param1) => ... }
val add = (a:Int)(b:Int)=>a + b
しかし、なぜ...私がしようとしているすべての値に複数のパラメータのリストを取る無名関数を割り当てることではありません。単一のパラメータリストでは動作しますが、複数のパラメータリストでは動作しません。
カリー化は後で来ます。私は、複数のパラメータリストを持つ無名関数が必要です。 'def foo(x:Int)(y:Int)'のように、これはdefで動作しますが、無名関数をvalに代入しても動作しません。 –
複数のパラメータリスト**は**カリングです。これは同じことを説明する2つの異なる方法です。 '= '記号の右側にあるものはすべて、** **無名関数です。匿名の使用例を追加しました。 – jwvh