婷婷射_狼人狠狠干_伊人久久婷婷五月综合97色_国产在线观看免费麻豆_欧美性成人_美女网站免费福利视频_aa视频在线观看_国产第一区第二区

歡迎訪問尚賢官網(wǎng),我們提供網(wǎng)站建設(shè)與推廣服務(wù)!
全國熱線:18537972228
您當前位置: 技術(shù)開發(fā) - 函數(shù)式編程思想

函數(shù)式編程思想

時間:2023-10-13 08:59:48 來源:洛陽尚賢科技

適用性:多個函數(shù),主體邏輯相同,但核心算法不同。比如都是for遍歷列表這叫主體邏輯相同,一個是加一個是減這叫核心算法不同。

步驟:

封裝(分):將變化點單獨定義在函數(shù)中。

繼承(隔):用參數(shù)抽象變化點,在公共函數(shù)中統(tǒng)一用法。從而隔離公共函數(shù)與變化點函數(shù)。

多態(tài)(做):對于面向?qū)ο髞碚f多態(tài)意思是重寫。在函數(shù)比編程里,重寫意思就是可以制作多個變化點函數(shù)。 但是新增的變化點函數(shù)一定要符合在公共函數(shù)中的用法,否則調(diào)不了。


*步: 封裝(分) " 主體邏輯相同,核心算法不同 “

1、封裝變化點,將變化點單獨定義在函數(shù)中。  變化點是 item > 10 (不帶if)。

2、建個變化點函數(shù),加上形參,把 item > 10 放進去,前面加上return。這相當于讓這個函數(shù)返回 item > 10 這個變化點

3、然后,這個函數(shù)用在哪兒呢? 用在主體邏輯中,也就是封裝相同點的公共函數(shù)里。

4、封裝相同點,寫公共函數(shù)把找數(shù)字的邏輯寫出來。

5、在 if 后面, 放變化點函數(shù),此時變化點函數(shù)替代了傳統(tǒng)的 item < 50 這種表達式。 因為變化點函數(shù)返回的本身就是 item < 50.

6、那么還要找大于10的數(shù)字,那就把上面的過程再來一遍,最后在封裝共同點的函數(shù)里再加個 if 后面放第二個條件函數(shù)。再有就放第三個…..

7、現(xiàn)在就會發(fā)現(xiàn)多個變化點函數(shù)就得放多個,各自也都寫死了,為解決這一問題,所以此時就需要開啟第二步:繼承。


第二步:繼承(隔)

1、所謂隔,也就是要抽象出一個相同點成為父類,抽象的目的是統(tǒng)一,統(tǒng)一的目的是隔離。

2、假設(shè)有兩個if condition01(item)  if condition02(item) 

3、抽象出相同點,就是 condition(item),那就把 condition 做為函數(shù)的形參,condition名字可隨便定。于是乎就可以只留一行 if condition(item)

4、這是什么意思??? 答:  面向?qū)ο罂康氖?"爸爸" 做抽象, 函數(shù)式編程靠的是 "參數(shù)" 做抽象。

5、所以把 "參數(shù)" 理解為父類這是抽象,也就是說隨便定個名字反正它是形參,這個形參接收的是傳過來的變化點函數(shù), 所有傳過來的變化點函數(shù)都用這一個參形代表, 所以從某種意義上來說它有點父類的意思。可以把 if condition(item) 理解為統(tǒng)一,統(tǒng)一就是確定用法。用這個形參括弧item就相當于是被調(diào)過來的函數(shù)在執(zhí)行item的判斷。

6、統(tǒng)一了用法以后,如果以后再增加了需求,比如找偶數(shù)、奇數(shù)、運算等等無窮無盡增加,都不影響這個統(tǒng)一的用法。從而起到了隔離的效果。


第三步:多態(tài)(做)
1、比如找偶數(shù)、奇數(shù)、運算等等無窮無盡增加變化點函數(shù),這就是函數(shù)式編程的多態(tài)表現(xiàn)。但新增的變化點函數(shù)必須符合公共函數(shù)的要求。


步驟演示:

需求1:在列表中查找大于10的數(shù)字
需求2:在列表中查找小于50的數(shù)字

list01 = [34, 5, 56, 7, 67, 89]

# def find_all01():
#     for item in list01:
#         if item > 10:
#             yield item
#
# def find_all02():
#     for item in list01:
#         if item < 50:
#             yield item

將以上代碼轉(zhuǎn)變?yōu)椤瘮?shù)式編程,注釋看左邊

# 變化點函數(shù),封裝不同
def condition01(item):
    return item > 10

def condition02(item):
    return item < 50

# 公共函數(shù),封裝相同


def find_all(condition):
    for item in list01:
        if condition(item):
            yield item

for item in find_all(condition01):   # 這里進行了間接調(diào)用,因為要調(diào)的函數(shù)沒加括號
    print(item)

如果覺得上面的說明太復(fù)雜,說人話簡單講就是把算法放在變化點函數(shù)里,再把變化點函數(shù)當成參數(shù)傳給公共函數(shù),在公共函數(shù)里做判斷和返回。就這么簡單。

相似文章

域名、服務(wù)器、瀏覽器:一次搞懂網(wǎng)站的三大基石

2025-11-24

視覺革命還是體驗陷阱?——深度解析網(wǎng)頁全屏視頻背景設(shè)計

2025-09-30

常見服務(wù)器攻擊手段與全方位防御策略解析

2025-08-27

網(wǎng)站不收錄,我們該怎么辦?

2025-08-07

深入淺出的談?wù)凥TTPS與SSL證書

2025-07-28

如何利用Sitemap提升網(wǎng)站SEO效果?

2025-07-24

喜報!尚賢外貿(mào) EDMCRM 系榮獲計算機軟件著作權(quán)登記證書

2025-07-22

洛陽外貿(mào)網(wǎng)站建站現(xiàn)狀與痛點分析

2025-07-05

尚賢科技“外貿(mào)出海數(shù)字化-谷歌高效獲客峰會”圓滿落幕

2025-05-16

重磅官宣!尚賢科技與 Google 強強聯(lián)手,開啟全球化數(shù)字新篇章!

2025-04-07

尚賢科技清明節(jié)放假通知-2025

2025-04-03

4月老客戶專享服務(wù) | 免費體驗「Sunshine EDM」外貿(mào)開發(fā)利器!

2025-04-02

尚賢科技外貿(mào)站留言系統(tǒng)全面升級:智能匹配國家、強化安全、高效溝通新體驗

2024-12-16

探索Sunshine-AI:洛陽尚賢網(wǎng)絡(luò)科技的AI創(chuàng)新之作

2024-08-05

AI革命!尚賢AI應(yīng)用產(chǎn)品震撼上市,重塑人工智能應(yīng)用格局!

2024-08-01

V3與V2版的微信支付有什么區(qū)別?

2023-11-13

Python的異常捕獲與處理方法是什么

2023-11-09

Python實現(xiàn)web端微信登錄的步驟

2023-11-06

尚賢科技成功開發(fā)網(wǎng)站及小程序微信支付功能,提供全面的在線支付解決方案

2023-09-06
聯(lián)系我們

手機:18537972228

電話:0379-64321586

Email:shangxian@sxglpx.com

地址:洛陽市澗西區(qū)九都西路181號中弘中央廣場D座2705室

我們提供整套的互聯(lián)網(wǎng)整合營銷托管服務(wù),深度研究SEO技術(shù)在網(wǎng)絡(luò)營銷中的創(chuàng)新和運用,為內(nèi)貿(mào)與外貿(mào)企業(yè)
量身定制高轉(zhuǎn)化率的網(wǎng)站設(shè)計開發(fā)與SEO營銷解決方案。
了解更多
將本站安裝到主屏幕,使用更順暢