1. 程式人生 > 實用技巧 >喵星之旅-狂奔的兔子-centos7安裝vnc服務端(tigervnc)

喵星之旅-狂奔的兔子-centos7安裝vnc服務端(tigervnc)

Lambda表示式

  • Lambda表示式:特殊的匿名內部類,語法更簡潔

  • Lambda表示式允許把函式作為一個方法的引數(函式作為方法引數傳 遞),將程式碼像資料一樣傳遞。

  • 基本語法:

    <函式式介面> <變數名> = (引數1,引數2...) -> { //方法體
    };
    
  • Lambda引入了新的操作符:->(箭頭操作符),->將表示式分成兩部分

    • 左側:(引數1,引數2…)表示引數列表

    • 右側:{}內部是方法體

  • 注意事項:

    • 形參列表的資料型別會自動推斷。

    • 如果形參列表為空,只需保留() 。

    • 如果形參只有1個,()可以省略,只需要引數的名稱即可。

    • 如果執行語句只有一句,且無返回值,{}可以省略,若有返回值,則若想省去{},則 必須同時省略return,且執行語句也保證只有一句。

    • Lambda不會生成一個單獨的內部類檔案。

函式式介面

  1. 如果一個介面只有一個抽象方法,則該介面稱之為函式式介面,函式式介面 可以使用Lambda表示式,Lambda表示式會被匹配到這個抽象方法上 。
  2. @FunctionalInterface 註解可以檢測介面是否符合函式式介面。

示例:

  1. //介面
    @FunctionalInterface
    public interface Usb {
        void service();
    }
    
  2. //實現
    public class Demo {
        public static void main(String[] args) {
            Usb mouse = new Usb() {
                @Override
                public void service() {
                    System.out.println("滑鼠開始工作了...");
                }
            };
    
            Usb fan = () -> System.out.println("風扇開始工作了...");
    
            run(mouse);
            run(fan);
        }
    
        public static void run(Usb usb) {
            usb.service();
        }
    }