看到你設定的背景,不太明白你前兩個想表達的意思,線上後臺和多人專案你是想表達程式碼的可讀性嗎?在專案運維階段,的確對於沒有寫過這個表示式的同事,分析起來有點困難,既程式碼難以維護。
那我還是從lambda的使用上來了解一下吧。
ava8中一個非常重要的特性就是lambda表示式,我們可以把它看成是一種閉包,它允許把函式當做引數來使用,是面向函數語言程式設計的思想,一定程度上可以使程式碼看起來更加簡潔。例如以前我們使用匿名內部類來實現程式碼:
//匿名內部類寫法
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("內部類寫法");
}
}).start();
使用lambda則更簡潔
//lambda 寫法
new Thread(() -> System.out.println("lambda寫法")).start();
(paramters) -> expression;
或者
(paramters) -> {statements;}
展開如:
(Type1 param1, Type2 param2, Type2 param2, ...) -> {
statement1;
statement2;
statement3;
...
return statementX;
1.可選型別宣告:不需要宣告引數型別,編譯器可以統一識別引數值。
2.可選的引數圓括號:一個引數無需定義圓括號,但多個引數需要定義圓括號。
3.可選的大括號:如果主體包含了一個語句,就不需要使用大括號。
4.可選的返回關鍵字:如果主體只有一個表示式返回值則編譯器會自動返回值,大括號需要指定明表示式返回了一個數值。
java8引入lambda表示式是接收了函數語言程式設計語言的思想,例如scala之類的,它將函式視為一等公民,可以使用高階函式等。
和指令式程式設計相比,函數語言程式設計強調函式的計算比指令的執行重要。
和過程化程式設計相比,函數語言程式設計裡函式的計算可隨時呼叫。
寫在最後,lambda表示式可以使程式碼看起來簡潔,但一定程度上增加了程式碼的可讀性以及除錯的複雜性,所以在使用時應儘量是團隊都熟悉使用,要麼乾脆就別用,不然維護起來是件較痛苦的事。
看到你設定的背景,不太明白你前兩個想表達的意思,線上後臺和多人專案你是想表達程式碼的可讀性嗎?在專案運維階段,的確對於沒有寫過這個表示式的同事,分析起來有點困難,既程式碼難以維護。
那我還是從lambda的使用上來了解一下吧。
java8新特性ava8中一個非常重要的特性就是lambda表示式,我們可以把它看成是一種閉包,它允許把函式當做引數來使用,是面向函數語言程式設計的思想,一定程度上可以使程式碼看起來更加簡潔。例如以前我們使用匿名內部類來實現程式碼:
//匿名內部類寫法
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("內部類寫法");
}
}).start();
使用lambda則更簡潔
//lambda 寫法
new Thread(() -> System.out.println("lambda寫法")).start();
lambda語法(paramters) -> expression;
或者
(paramters) -> {statements;}
展開如:
(Type1 param1, Type2 param2, Type2 param2, ...) -> {
statement1;
statement2;
statement3;
...
return statementX;
}
lambda表示式特徵1.可選型別宣告:不需要宣告引數型別,編譯器可以統一識別引數值。
2.可選的引數圓括號:一個引數無需定義圓括號,但多個引數需要定義圓括號。
3.可選的大括號:如果主體包含了一個語句,就不需要使用大括號。
4.可選的返回關鍵字:如果主體只有一個表示式返回值則編譯器會自動返回值,大括號需要指定明表示式返回了一個數值。
總結java8引入lambda表示式是接收了函數語言程式設計語言的思想,例如scala之類的,它將函式視為一等公民,可以使用高階函式等。
和指令式程式設計相比,函數語言程式設計強調函式的計算比指令的執行重要。
和過程化程式設計相比,函數語言程式設計裡函式的計算可隨時呼叫。
寫在最後,lambda表示式可以使程式碼看起來簡潔,但一定程度上增加了程式碼的可讀性以及除錯的複雜性,所以在使用時應儘量是團隊都熟悉使用,要麼乾脆就別用,不然維護起來是件較痛苦的事。