Lambda學習筆記

2021-10-05 04:50:22 字數 2281 閱讀 6952

1.函式式程式設計思想:有輸入得到輸出的一套計算思想 即:拿資料做操作,忽略物件的複雜語法,強調做什麼,而不是以什麼形式去做

2.物件導向思想則是:必須通過物件的形式做操作

3.lambda就是函式思想

eg: new thread(()->).start();

():形式引數:表示方法的傳參為空

->:箭頭:指向後面要做的事

{}:**塊:方法體,要做的事, 體現函式程式設計思想,著重體現要做什麼事

即:(形式引數)->

lanbda使用前提:有乙個介面 and 介面中有且僅有乙個抽象方法

4.lambda省略模式:

a.省略型別: useaddable((int x,int y)->);

-->useaddable((x,y)->);

注意 x , y, int 要同時省略

b. 如果有且僅有乙個引數,小括號也可能省略

eg: useeatableb((string b) -> );

--->useeatableb((b) -> );

c.如果**塊有且僅有一條語句,{}和; 也可省略,如果有return ,return也要一起省略

eg: useeatableb(s -> system.out.println("lambda說吃:" + s));

useaddable((x, y) -> x + y);

5.lambda 和內部類的區別:

1.lambda:所需要物件只能是接品,而內部類可以是物件,介面,和抽象類

2.lambda 使用的介面裡,只能用乙個抽象方法,有多個就報錯,但內部類可以使用介面中有多個抽象方法

3.lambda 編譯時只產生乙個.class檔案,內部類編譯時除本身還會多產生乙個.class檔案

學習code:

package ten;

import org.w3c.dom.ls.lsoutput;

/** * @author kukafei.hai

* @date 2020/4/17 : 14:52

* @email : [email protected]

*/public class eattestdemo

});system.out.println("--------無參測試lambda---------");

useeatable(() -> );

system.out.println("//傳參且無返回值的//");

system.out.println("----傳參的 匿名內部類---------");

eatableb eatableb = new eatablebimp();

useeatableb(new eatableb()

});system.out.println("----傳參且無返回值的 lambda測試-----");

useeatableb((string b) -> );

system.out.println("傳兩引數,且帶返回值的/");

// 1.通過實現addable介面實現物件,略

// 匿名內部類形式

int temp = useaddable(new addable()

});system.out.println("匿名內部類返回:" + temp);

system.out.println("---------有兩引數,帶返回值 lambda測試----------------");

system.out.println("lambda返回:" + useaddable((int x, int y) -> ));

useaddable((x, y) -> );

useeatableb(s -> );

useeatableb(s -> system.out.println("lambda說吃:" + s));

useaddable((x, y) -> x + y);

}private static int useaddable(addable a)

/*** 方法中要傳乙個引數

** @param b 傳乙個實現物件

*/private static void useeatableb(eatableb b)

/*** @param e 這裡,eatable 雖然是介面,但是當介面做為引數時,

* 實際是要傳要傳乙個eatable的實現類 eg: a處

*/private static void useeatable(eatable e)

}

Lambda學習筆記

lambda 是jdk18出的新特性,在這之前我沒這麼在意這個新特性,直至前段時間在網上看大牛的播客寫的各種框架有的使用lambda 編寫的 當時沒怎麼看明白,自己才找 相關資料寫了幾個非常簡單的demo class b author qinwei 只有 乙個抽象方法的 介面 叫做函式介面 func...

python學習筆記 lambda

之前用過lambda,但是雖然用過卻並沒有仔細的想過lambda,今天就簡單的說說lambda。還是遵循我固有的三板斧 what,how,why。1 lambda是什麼,以及怎麼用 lambda是乙個匿名函式,用法如下。a lambda x x 1上式等價與 def a x reurn x 1下面的...

c 學習筆記 lambda函式

1 std for each vec.begin vec.end count int x 中的count是外部變數,表示引用,如果不加 就只是普通傳參 std for each vec.begin vec.end int x 表示引用所有外部變數2 auto mod3 int x int count...