簡單談談lambda 表示式
阿新 • • 發佈:2018-12-30
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();