ラムダ式を用いたプログラミングの基礎を学びましょう。
問題
以下のプログラムを実行した場合の出力はどれでしょうか?正しい選択肢を選んでください。
import java.util.function.Function;
public class Main {
public static void main(String[] args) {
Function intToString = (Integer i) -> "Number: " + i;
System.out.println(intToString.apply(5));
}
}
選択肢
- A. コンパイルエラー
- B. Number: 5
- C. 5
- D. 実行時エラー
答えと解説
回答を見る
答え
B. Number: 5
解説
基本説明:
ラムダ式は、Javaで関数型インターフェースを扱うのに用いられる簡潔な記述法です。ここではFunction<Integer, String>
インターフェースを使い、整数を文字列に変換する関数を記述しています。具体的には、整数を入力として受け取り、”Number: “という文字列と結合して文字列を返します。
誤答理由:
選択肢A(コンパイルエラー)は考えられません。プログラムは正しく構文を守っています。選択肢C(5)は、関数の出力フォーマットを誤解しています。選択肢D(実行時エラー)は、指定されたラムダ式の動作を考えると不適切です。このラムダ式は正しく処理を実行します。
つまずきポイント:
初心者が間違いやすいポイントは、ラムダ式の構文や動作を理解せずに実行結果を予測することです。Function
インターフェースは、単一の引数を受けて結果を返すメソッドapply
を持ちます。ラムダ式は、このインターフェースを実装することで、その機能を簡潔に表現しています。
発展知識:
ラムダ式によってJavaプログラムはより簡潔になり、保持するコード量が減少します。Javaの標準APIには多くの関数型インターフェースが組み込まれており、利用することでより効率的なプログラムを書くことが可能です。特にStream
APIと組み合わせることで、集合を操作する処理がより強力になります。