(二十三)Lamdba表示式的使用

2021-09-26 16:30:23 字數 1144 閱讀 3325

學前問?

什麼是lambda表示式?有什麼作用?如何使用lambda表示式?使用它有哪些限制?

0 函式式程式設計思想

注重結果,不注重過程,對於誰去做的,如何做的都不關心,只要結果得到即可。

1 匿名內部類的優缺點

優點:不需要建立物件,直接寫

缺點:**比較複雜,冗餘。

1.1 lambda表示式與匿名內部類的關係??

2 lambda表示式的標準格式

引數,箭頭,**塊組成了lambda表示式:

(引數)->

():介面中抽象方法的引數列表,無參就不寫。

->:箭頭就是傳遞,將引數傳遞給方法體

:裡面新增需要重寫的**塊

3 lambda的使用前提

①必須有介面,且介面中只有乙個抽象方法,方法唯一才可以使用lambda。

②使用lambda必須有上下文推斷,即方法的引數型別必須為lambda對應的介面型別。

4 lambda的簡化模式

說不如做:

定義計算a+b的介面

public inte***ce calculation
測試類

public class calculationtest 

public static void main(string args)});

//lambda表示式簡化

cal(11,21,(int a,int b)->);

//lambda的省略模式

cal(11,22,(a,b)->a+b);

}}

學後答

什麼是lambda表示式?

lambda表示式就是實現匿名內部類的一種簡化的方式。將函式傳遞進入方法。

有什麼作用?

將複雜,冗餘的**刪去了,只留下了需要的**,簡化了**。

如何使用lambda表示式?

()->{}箭頭函式的方式。

使用它有哪些限制?

必須是介面,且介面中只有乙個抽象方法。

jdk1.8以後才推出的新功能。

學習感受:給我的感覺就是lambda表示式簡化了單個介面或者內部類的方法的實現,而且引數型別必須相同才行。規定比較嚴格。就是感覺用途不是很廣。可能是我剛學習吧,接觸的不多。

python中的lamdba表示式

lamdba為乙個表示式,函式體比def簡單。它的主體是乙個表示式,而不是乙個 塊,僅僅能在lamdba表示式中封裝有限的邏輯進去。舉例如下 f lambda x x x print f 3 9 f1 lambda x,y,z x y z print f1 2,3,10 15 n 5 reduce ...

C 3 0 Lamdba表示式與表示式樹

c 2.0中的匿名方法使得建立委託變得簡單起來,甚至想不到還有什麼方式可以更加的簡化,而c 3.0中的lamdba則給了我們答案。lamdba的行為實際上和匿名方法是一致的,可以簡單粗暴的理解為是匿名方法的進化版本,和匿名方法作用一致,但書寫起來更加簡單,lamdba表示式有特別的轉換規則,表示式並...

go實踐二十三 使用正則

使用 go run testregexp.go 執行該檔案即可 通過正則判斷是否匹配 regexp包中含有三個函式用來判斷是否匹配,如果匹配返回true,否則返回false func match pattern string,b byte matched bool,error error func ...