Scala-anonymous-functions

提供:Dev Guides
移動先:案内検索

Scala-無名関数

Scalaは、匿名関数を定義するための比較的軽量な構文を提供します。 ソースコード内の匿名関数は*関数リテラル*と呼ばれ、実行時に関数リテラルは*関数値*と呼ばれるオブジェクトにインスタンス化されます。

Scalaは first-class 関数をサポートします。つまり、関数は関数リテラル構文、つまり(x:Int)⇒ x + 1で表現でき、関数は関数値と呼ばれるオブジェクトで表現できます。

次の式を試してください、それは整数の後継関数を作成します-

var inc = (x:Int) => x+1

変数incは現在、通常の方法で使用できる関数です-

var x = inc(7)-1

次のように複数のパラメータを持つ関数を定義することも可能です-

var mul = (x: Int, y: Int) => x*y

変数mulは現在、通常の方法で使用できる関数です-

println(mul(3, 4))

次のようにパラメータなしで関数を定義することも可能です-

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

変数userDirは現在、通常の方法で使用できる関数です-

println( userDir )