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)
ナウい言語はこういう書き方に慣れてないと読みづらいので、練習するだよ。