函式式程式設計

2021-10-07 12:24:00 字數 1863 閱讀 7815

注:日誌可以幫助我們快速定位問題,記錄執行過程中的情況,以便專案的監控和優化。

package com.wcy.demo1.functioninte***ce;

/* 函式介面:有且只有乙個抽象方法的介面

*/@functionalinte***ce

public inte***ce myfunctioninte***ce

package com.wcy.demo1.functioninte***ce;

public class myfunctioninte***ceimpl implements myfunctioninte***ce

}

package com.wcy.demo1.functioninte***ce;

/* 函式式介面的使用:一般可以作為方法的引數和返回值型別

*/public class demo

public static void main(string args)

});//呼叫show方法,方法的引數是乙個函式式介面,所以我們可以lambda表示式

show(()->);

//簡化lambda表示式

show(()-> system.out.println("使用lambda表示式重寫介面中的抽象方法"));

}}

效能浪費的日誌案例:

package com.wcy.demo2.lambda;

/* 日誌案例

*/public class demo01logger

}public static void main(string args)

}

發現以上**存在效能浪費的問題

1.呼叫showlog方法,傳遞的第二個引數是乙個拼接後的字串

2. 先把字串拼接好,再呼叫showlog方法

3.showlog方法中如果傳遞的日誌等級不是1級

4.那麼就不會是如此拼接後的字串

5.所以感覺字串就白拼接了,存在了浪費

所以針對以上問題,使用lambda優化日誌

lambda的特點:延遲載入

lambda的使用前提:必須是函式式介面

package com.wcy.demo2.lambda;

@functionalinte***ce

public inte***ce messagebuilder

package com.wcy.demo2.lambda;

/* 使用lambda優化日誌案例

*/public class demo02lambda

}public static void main(string args) );

}}

使用lambda表示式作為引數傳遞,僅僅是把引數傳遞到showlog方法中

1.只有滿足條件,日誌的等級是1級時

才會呼叫介面messagebuilder中的方法buildermessage

才會進行字串的拼接

2.如果條件不滿足,日誌的等級不是一級

那麼messagebuilder中的方法buildermessage不會執行

所以拼接字串的**也不會執行

所以不會存在效能的浪費

函式式程式語言python 函式式程式設計

函式是python內建支援的一種封裝,我們通過把大段 拆成函式,通過一層一層的函式呼叫,就可以把複雜任務分解成簡單的任務,這種分解可以稱之為面向過程的程式設計。函式就是面向過程的程式設計的基本單元。而函式式程式設計 請注意多了乙個 式 字 functional programming,雖然也可以歸結...

函式式程式設計

最近在看一些關於js方面的東東,除了些ajax的基本應用,還了解了些函式式程式設計 fp 的東東。雖然以前也玩過幾天lisp的,不過因為當時完全對fp的東西沒有概念,壓根就不知道原來這是list那一族最大的特性之一 另外我知道的還有個是gc,orz.光注意那些詭異的 表 去了。總結一下,傳統上認為f...

函式式程式設計

維基百科 函式式程式設計 英語 functional programming 或者函式程式設計,又稱泛函程式設計,是一種程式設計范型,它將計算機運算視為數學上的函式計算,並且避免使用程式狀態以及易變物件。函式程式語言最重要的基礎是 演算 lambda calculus 而且 演算的函式可以接受函式當...