あの日見たLambdaの書き方を僕はまだ知らない

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)

ナウい言語はこういう書き方に慣れてないと読みづらいので、練習するだよ。

Similar Posts:


Leave a Reply

Your email address will not be published. Required fields are marked *