あの日見た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)

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

Related Posts


投稿者: Takeken

インターネット利用者のITリテラシーを向上したいという設定の2次元キャラです。 サーバー弄りからプログラミングまで手を付けた自称エッセイストなたけけんの物語。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です