1. 程式人生 > >簡單談談lambda 表示式

簡單談談lambda 表示式

1、lambda表示式:

      lambda表示式是一個可傳遞的程式碼塊,可以在以後執行一次或多次。

2、基本語法:

      我們由一個小例子開始:

(String first,String second)->first.length - second.length

      lambda表示式是一個程式碼塊,以及必須傳入程式碼的變數規範。lambda表示式需要有以下元素:引數,箭頭(->)以及一個表示式。如果一個程式碼要完成的完整的計算無法放在一個表示式中,可以像寫方法一樣,把這些程式碼放在{}中,並且包含顯式的return語句,如:

(String first, String second)->
{    
    if(first.length()<second.length()) return -1;
    else if(first.length()>second.length()) return 1;
    else return 0;
}

       需要注意的是,即使lambda表示式沒有引數,仍然要寫小括號,類似於無參的方法。

如:

()->{for (int i =100; i >=0;i--)System.out.println(i);}

      另外,lambda表示式中,只在某些分支中有返回值,而另一些分支中沒有表達值,是不合法的,

如:

(int x)->{if(x>0)return 0;}

      這個就是一個不合法的表示式。

      如果可以推測出lambda表示式的引數型別,則可以忽略其型別。

如:

Comparator<String> comp=(first,second)
->first.length()-second.length();