Scala ひと巡り : 無名関数の構文 (Anonymous Function Syntax)

Scala は無名関数の定義について、比較的簡単な構文を提供します。次の式は、整数の後続関数を生成します:

(x: Int) => x + 1

これは次の、無名クラス定義の略記表現です:

new Function1[Int, Int] { def apply(x: Int): Int = x + 1 }

複数のパラメータをもつ関数も定義できます。

(x: Int, y: Int) => "(" + x + ", " + y + ")"

あるいは、パラメータなしの関数:

() => { System.getProperty("user.dir") }

関数の型を書くためのたいへん簡単な方法もあります。次は、上で定義した 3 つの関数の型です:

Int => Int (Int, Int) => String () => String

この構文は、次の型の略記表現です:

Function1[Int, Int] Function2[Int, Int, String] Function0[String]