2021年-07-05教室講義ランダ食(Lambda)


関数は、メソッドをオブジェクトから削除します.つまり関数はnon-oop言語です.
Javaではオブジェクト要素がなく関数が単独で存在しないため,実装インタフェースの匿名実装オブジェクトを生成する.
ラムダ式は匿名関数オブジェクトを生成することを表すが,正確には匿名実装オブジェクトである.
すなわち,実装インタフェースを生成する対象がラムダ式である.
Javaはラムダ式を関数インタフェース(パラメータ付きコードブロック)の匿名実装オブジェクトと見なす
どのインタフェースを実装するかは、代入されたインタフェースに依存します.

青茶の書き方

(타입 매개변수) -> {실행문;... };例>>(int a) -> {System,out.println(a);}ラムダ式は簡単な機能を簡潔に実現するために書かれている.
実装式が長すぎるコードはramda形式で記述される意味がない.
():ブロックインポートを抽象メソッドのパラメータで宣言します.抽象メソッドのパラメータの数を説明します.
{}:メソッドオーバーライド用の実行ブロック.
式は値を生成します.=>>匿名のインプリメンテーション・オブジェクト(ターゲット・タイプ)

ランダ式でまず知っておきたい概念

  • 機能インタフェース
  • インタフェース
  • 、抽象的な方法は1つしかありません
  • インタフェースの4つのメンバーのうち、抽象メソッドを除いて、他のメンバーの数は制限されません.
    (インタフェース構成メンバー:static final定数フィールド、抽象メソッド、エラーメソッド、静的メソッド)
  • @Functional Interfaceポジショニングインタフェース
    しかし,技術的な説明がないわけではなく,抽象的な方法が1つしかないインタフェースは機能的ではない.
    宣言はコンパイラに情報を提供する役割なので、貼り付けをお勧めします.
  • ラム式は、実装される関数インタフェース=>をラム式のターゲットタイプと呼ぶ.
  • 抽象メソッドにパラメータと戻りタイプがない場合
  • 抽象メソッドにはパラメータがあり、戻りタイプがない場合は
  • である.
  • 抽象メソッドのパラメータと戻りタイプはいずれも
  • である.

    ラム多式省略条件

  • 青括弧には1つの実行文しかなく、記号
  • を省略することができる.
    // 아래 두 문장은 같은 결과 출력한다.
    fi = () -> {log.info("method call"); };
    fi = () -> log.info("method call");
  • 機能インタフェース抽象メッセージにパラメータが含まれている場合.
    このパラメータタイプは、コンパイラのタイプ推定機能によって
  • を省略することができる.
    //fi=(int x) -> {		//추상메소드의 매개변수 그대로 가져옴. 
    fi=(x) -> {			//매개변수타입 int생략
    	int result = x * 5;
    	log.info(result);
    };				 //람다식으로 타겟타입의 추상메소드 구현-> 익명구현객체 생성
    
  • パラメータ宣言子には、符号
  • を省略できるパラメータが1つしかない()
    fi = x -> log.info(x*5);
  • 実装の抽象メソッドには戻りタイプがあり,Ramda式の実行文は1つしかない.
    実行文が戻り値のreturn文である場合、returnキーワードは省略できます.
  • //아래 세 구현식은 모두 같은 결과 출력한다.
    
    //////// 생략조건 2. 매개변수 타입 생략 가능
    fi = (x, y) -> {		
    		int result = x+ y;
    		return result;
    };
    
    //////// 생략조건 1. 실행문장 1개일 때 { } 기호 생략 가능 
    fi = (x, y) -> { return x + y; } ;	
    
    //////// 생략조건 4. return 키워드 생략 가능
    fi = (x, y) -> x + y;