介面中有且僅有乙個抽象方法的介面叫做函式式介面
必須針對函式式介面使用
lambda具有延時性
我們的程式在執行時,有時會執行一些沒有必要的步驟,這些步驟增加了程式執行時間,降低了程式的執行效率。而lambda具有延時性,我們可以通過這種方法對程式進行優化
沒有被lambda優化的程式
public
class
demo07
}public
static
void
main
(string[
] args)
}
從程式中可以看出不管是否滿足條件,作為引數的string s都將字元進行了拼接,如果不滿足輸出條件那麼這個拼接就是毫無意義的執行,浪費了程式執行的效率
lambda優化後的程式
public
class
demo06
}public
static
void
main
(string[
] args));
max(1,
()->);
}}
因為lambda具有延時執行的特性,所以當我們將其作為引數傳入時,他只是被傳入,並沒有進行呼叫,他不會進行字元拼接,只有在函式式介面中的抽象方法被呼叫時,他才會執行字元拼接。也就是只有滿足輸出條件,需要對其呼叫輸出時,他才會執行此步驟,這樣大大減少了程式非必要執行的步驟,提高了程式的效率。 使用Lambda優化日誌案例
使用lambda必然需要乙個函式式介面 package com.learn.demo02.lambda functionalinte ce public inte ce messagebuilder然後對log 方法進行改造 package com.learn.demo02.lambda 使用lam...
效能浪費案例及使用Lambda優化
1.發現以下 存在的一些效能浪費的問題 package com.functionalinte ce.lambda 日誌案例 發現以下 存在的一些效能浪費的問題 呼叫showlog方法,傳遞的第二個引數是乙個拼接後的字串 先把字串拼接好,然後再呼叫showlog方法 showlog方法中如果傳遞的日誌...
程式理解Lambda表示式
include pch.h include using namespace std intmain cout 測試 2 定義乙個變數來接收匿名函式 endl auto x x cout 測試 3 匿名函式的返回值 endl int cout 測試 4 匿名函式的返回值預設推導 endl cout 測...