Javaだったから、という理由で選んだ本を買ったまでは良かったんだけど、なんか私の知ってるのと違うだ!
なんてことになったんで、読んで調べてみると、これラムダという。
Java8になって、関数型インターフェースはラムダ記法で置き換えることができるようになった。
関数型インターフェースとは定義されている抽象メソッドが1つだけあるインターフェースのこと。
だそうだ。
コードで書くとこんな感じ。
@FunctionalInterface
public interface Calc {
public int add(int x);
}
普通に実装するばやい、こんな風になるだ。
Calc calcsample = new Calc() {
@Override
public int add(int x) {
return x = x * x;
}
};
ラムダ記法にすると、こんな感じになるだ。
Calc calcSampleLambda = (int x) -> x * x;
短かっ!
そして、さらにこう書けた。
Calc calcSampleLambda = x -> x * x;
いろいろなサイトを見て回って文章とコードを読んでもいまいちわからなかったんだけど、実際に自分の手と頭を使ってコードを書くと頭に入ってくれるだね。
サンプル
public class LambdaTraining {
@FunctionalInterface
public interface Calc {
public int add(int x);
}
public static void main(String[] args) {
Calc calcSample = new Calc() {
@Override
public int add(int x) {
return x = x * x;
}
};
Calc calcSampleLambda = x -> x * x;
System.out.println(calcSample.add(5));
System.out.println(calcSampleLambda.add(5));
}
}
実行結果
run: 25 25 BUILD SUCCESSFUL (total time: 0 seconds)
ナウい言語はこういう書き方に慣れてないと読みづらいので、練習するだよ。