Lambda運算式
閉包,允許將函式作為一個方法的引數傳遞進方法中,
本質上是一個匿名方法,
理解的時候,可以將Lambda運算式的內容轉化為一個方法去理解,
語法
(paramters) -> expression
(parameters) -> { statements; }
(int a) -> {return a * a;}
(int a,int b) -> {return a + b;}
a -> a * a;
(a, b) -> a + b
特點:
- 可選型別宣告:不需要宣告引數型別,編譯器可以統一識別引數值,
- 可選的引數圓括號:一個引數無需定義圓括號,但多個引數需要定義圓括號,
- 可選的大括號:如果主體包含了一個陳述句,就不需要使用大括號,
- 可選的回傳關鍵字:如果主體只有一個運算式回傳值則編譯器會自動回傳值,大括號需要指定明運算式回傳了一個數值,
lambda運算式中的變數作用域
lambda 運算式只能參考標記了 final 的外層區域變數,即不能在 lambda 內部修改定義在域外的區域變數,否則會編譯錯誤,
注意
雖然使用Lambda運算式可以對某些介面進行簡單的實作,但并不是所有的介面都可以使用 Lambda 運算式來實作,
使用Lambda運算式的需要是函式式介面,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/143905.html
標籤:Java
上一篇:Java常用類-包裝類
下一篇:Java8(二) 函式式介面
