Java8(一) Lambda表達式

Lambda表達式

閉包。容許將函數做爲一個方法的參數傳遞進方法中。java

本質上是一個匿名方法。express

理解的時候,能夠將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 內部修改定義在域外的局部變量,不然會編譯錯誤。code

注意

雖然使用Lambda表達式能夠對某些接口進行簡單的實現,但並非全部的接口均可以使用 Lambda 表達式來實現。接口

使用Lambda表達式的須要是函數式接口作用域

相關文章
相關標籤/搜索