関数について
ScalaByExample - Chapter 5 First-Class FunctionsとScalaByExample - Chapter 5.1 Anonymous Functionsのポイントまとめ。
関数は値
Scalaの関数は値です。引数として渡したり、戻り値として返すことができます。以下は、関数を引数として受け取る関数の例です。
- 「<仮引数名>:<引数型..> => <戻り値型>」で関数を示す型となります。
- 関数内では「<仮引数名>(<引数..>)」で渡された関数を実行できます。
// 関数を受け付ける関数の定義 // 「<仮引数名>:<引数型..> => <戻り値型>」で関数の型を示す def foo( f:(int, int)=>int ) = f( 2,3 ) // 関数 def sum( a:int, b:int ) = a+b // 実行! println( foo( sum ) ) // 5
実行結果です。
6
無名関数
「(<引数..>) => <処理>」で無名関数を生成できます。
// 「(<引数..>) => <処理>」で無名関数を生成できる。 println( foo( (a:int, b:int) => a*b ) ) // 6
このへん、チュートリアルででてきたな。