1.函式式程式設計思想:有輸入得到輸出的一套計算思想 即:拿資料做操作,忽略物件的複雜語法,強調做什麼,而不是以什麼形式去做學習code: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檔案
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...