lambda表示式入門

2021-10-06 22:48:50 字數 1689 閱讀 1850

使用lambda表示式的條件:必須是函式式介面

什麼是函式式介面?

簡單來說, 就是乙個有且僅有乙個抽象方法,但是可以有多個非抽象方法的介面。

inte***ce

animal

通過**方式一步一步推導出lambda表示式如何簡化來的

public

class

demo01

}public

static

void

main

(string[

] args)

}//3.使用區域性內部類

dog =

newdog3()

; dog.

eat(

"辣手摧花");

//4.使用匿名內部類

dog =

newanimal()

};dog.

eat(

"白菜花");

//5.使用lambda表示式

dog =

(string name)

->

; dog.

eat(

"韭菜花");

lambda表示式簡寫,如果只有乙個引數,則可以省略引數型別以及();如果**塊只有一行語句,則可以省略{}

dog = name-

> system.out.

println

(name+

"正在吃東西……");

dog.

eat(

"韭菜花");

}}/** * 最傳統的實現類

*/class

dogimplements

animal

}inte***ce

animal

執行結果

小花正在吃東西……

翠花正在吃東西……

辣手摧花正在吃東西……

白菜花正在吃東西……

韭菜花正在吃東西……

韭菜花正在吃東西……

總結:

1. 如果方法入參只有乙個引數,則可以省略引數型別以及();否則不能省略()

inte***ce

animal

2. 如果方法體只有一行**執行,則可以省略{};否則不能省略

dog = name-

> system.out.

println

(name+

"正在吃東西……");

//省略了引數型別以及()

dog.

eat(

"韭菜花"

);

3. 如果有多個入參,引數型別也可以省略,如果省略則必須都省略,這時必須使用()包裹入參

inte***ce

animal

dog =

(name,2)

-> system.out.

println

(name+

"正在吃東西……"

);

lambda 表示式入門

lambda表示式由三部分組成 paramaters 類似方法中的形參列表,這裡的引數是函式式介面裡的引數。這裡的引數型別可以明確的宣告也可不宣告而由jvm隱含的推斷1。另外當只有乙個推斷型別時可以省略掉圓括號。可理解為 被用於 的意思 方法體 可以是表示式也可以 塊,是函式式介面裡方法的實現。塊可...

lambda表示式 lambda表示式

1.概述 c 11 中的 lambda 表示式用於定義並建立匿名的函式物件,以簡化程式設計工作。lambda 的語法形式如下 函式物件引數 操作符過載函式引數 mutable 或 exception 宣告 返回值型別可以看到,lambda 主要分為五個部分 函式物件引數 操作符過載函式引數 muta...

lambda表示式入門例子

說是函式式介面。其實也可以理解為匿名內部類。最簡單的例子 functionalinte ce 表示函式式介面,編譯的時候會強制校驗 public inte ce animal 帶引數的例子 public inte ce count 省略寫法 functionalinte ce public inte...