基於微軟Ling框架下的函式式程式設計思想

2021-09-18 05:26:28 字數 1332 閱讀 4930

基於微軟ling框架下的函式式程式設計思想

核心思想:函式作為引數

假設現在有乙個問題:

定義乙個函式,可以根據所給條件條件返回學生物件:

#直觀的做法:

def get_students01(list_stu):

for item in list_stu:

if item.age > 25:#變化的條件

yield item

提取變化,進行單獨封裝:

def condition01(item):

return item.age > 25

直接呼叫變化:

def get_students01(list_stu):

for item in list_stu:

if condition01(item):

yield item

還是很麻煩!!!

用引數func_condition抽象代表各種條件:

def get_students(list_stu,func_condition):

for item in list_stu:

if func_condition(item):

yield item

直接以改變傳參來改變條件:

re02 = get_students(studs,condition01)

for item in re02: #用for函式呼叫__next__()內建函式:

print(item)

以lambda函式來進行傳參:

re02 =get_students(studs,lambda item:item.age>25)

for item in re02:

print(item)

可以將所有函式方法放入乙個類中,以便日後呼叫:

class method:

def get_students(list_stu,func_condition):

for item in list_stu:

if func_condition(item):

yield item

呼叫:

re03=method.get_students(studs,lambda item:item.age>25)

for item in studs:

print(item)

總結:1.找出變化點

2.將變化的條件單獨封裝成函式

3.將函式作為引數傳給另乙個函式

4.善於使用lambda函式代替條件函式功能

5.將經常使用的函式方法單獨儲存

基於MFC框架下OpenGL的exe可移植

以前寫了幾個mfc框架下的opengl小專案,但是移植exe的時候總需要copy很多dll檔案,感覺太low,於是今天就抽時間解決了這個問題。我們了解一下關於mfc的兩個執行機制 一 mfc庫鏈結方式 1 靜態連線 把需要的mfc庫函式放進你的exe之中,這樣,在mfc庫函式檔案不在的情況下,你的e...

基於SSH2框架下的 使用者註冊 驗證碼功能

jsp頁面 驗證碼 js 驗證碼 chknumber click function struts.xml檔案配置 image jpeg inputstream action處理 輸出流 private bytearrayinputstream inputstream 驗證碼獲取 public str...

Qt log2000 介面框架下的函式指標初探

qt c 11 c 函式指標 實驗環境 qt5.8.0 支援c 11 ubuntu 14.04 64bit 首先在qt creator中新建乙個project,取預設的mainwindow型別 include mainwindow.h int main int argc,char argv 編譯肯定...