私はforeach
スタイルメソッドをいじっていて、呼び出すのが難しいように見えるこのメソッドを自分で作成しました:
scala> def fun(i: Int => Unit, j: Int => Unit) {
| i(1)
| j(2)
| }
fun: (i: Int => Unit, j: Int => Unit)Unit
何度も試みましたが、有効な呼び出しを作成できませんでした。
への文法的に有効な呼び出しはfun
何ですか?
私はforeach
スタイルメソッドをいじっていて、呼び出すのが難しいように見えるこのメソッドを自分で作成しました:
scala> def fun(i: Int => Unit, j: Int => Unit) {
| i(1)
| j(2)
| }
fun: (i: Int => Unit, j: Int => Unit)Unit
何度も試みましたが、有効な呼び出しを作成できませんでした。
への文法的に有効な呼び出しはfun
何ですか?
明示的で冗長な例は次のとおりです。
fun({x => println(x)}, {y => println(y)})
しかし、実際には、私が書いた多くのコードを短縮して (@PabloFalabella が言ったように)、次のように書くことができます。
fun(println,println)
これは、println だけでなく、他の関数でも問題なく動作するはずです (署名に一致する限り)。
def fun(i: (Int,Int) => Unit, j: Int => Unit) { i(1, 2); j(2) }
def printSum(x: Int, y: Int) = println(x + y)
scala> fun(printSum, println)
3
2