回覆列表
  • 1 # 寫程式設計師的程式碼

    看到你設定的背景,不太明白你前兩個想表達的意思,線上後臺和多人專案你是想表達程式碼的可讀性嗎?在專案運維階段,的確對於沒有寫過這個表示式的同事,分析起來有點困難,既程式碼難以維護。

    那我還是從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表示式可以使程式碼看起來簡潔,但一定程度上增加了程式碼的可讀性以及除錯的複雜性,所以在使用時應儘量是團隊都熟悉使用,要麼乾脆就別用,不然維護起來是件較痛苦的事。

  • 中秋節和大豐收的關聯?
  • 韋世豪在中超比賽之後腳步紅腫,發文稱遭到對手的報復踩踏,你怎麼看?