Scalaにおける**無名関数(anonymous function)**とは、名前を持たない関数のことを指します。これは、一時的に使用したい処理を簡潔に記述する際に用いられ、関数型プログラミングのスタイルで非常に頻繁に登場します。
1. 基本構文
Scalaでは、無名関数を次のような構文で記述します。
例
この例では (x: Int, y: Int) => x + y が無名関数です。関数に名前 add を付けて変数に代入していますが、関数自体は名前を持ちません。
2. 無名関数の使用例
高階関数と組み合わせる例(map関数)
map関数)この例では、x => x * x という無名関数が map に渡され、各要素を2乗しています。
3. 型推論の活用
Scalaの型推論により、引数の型を省略することができます。
また、引数が1つだけの場合は「_」を使ってさらに簡潔に書くことも可能です。
この (_ * 2) は (x => x * 2) と同じ意味です。
4. 無名関数の利点と用途
-
一時的な処理を簡潔に記述できる
-
コードの可読性や表現力の向上
-
関数を引数として渡す場面(高階関数)で活用される
5. 無名関数と関数値の違い
無名関数を変数に代入すると「関数値(function value)」として扱われます。これはオブジェクトとして扱える関数であり、Scalaでは関数型プログラミングに不可欠な要素です。
まとめ
| 項目 | 説明 |
|---|---|
| 定義方法 | (引数) => 処理 |
| 主な用途 | 一時的な関数、引数として渡す関数 |
| 特徴 | 名前を持たない、型推論や _ を使って簡潔に書ける |
| 使用例 | map, filter, foreach などの高階関数で頻出 |
生成日:2025/05/04