在計(jì)算機(jī)編程中,函數(shù)是為執(zhí)行特定任務(wù)而提供的一系列指令和計(jì)算步驟。
這些指令構(gòu)成一個(gè)單元,可以在程序中需要執(zhí)行該任務(wù)的任何部分中使用。(直接閱讀編程專家的文章:現(xiàn)在最好學(xué)什么函數(shù)式編程語言?)
該函數(shù)將提供取決于其參數(shù)和自變量的結(jié)果值,例如計(jì)算數(shù)學(xué)值以確定輸出。該函數(shù)還可以包括根據(jù)結(jié)果執(zhí)行某些任務(wù),例如修改數(shù)據(jù)庫內(nèi)的數(shù)據(jù)或以遞歸方式啟動其他鏈接函數(shù)。
在過程編程(PP) 中,函數(shù)、過程或子例程對數(shù)據(jù)執(zhí)行操作。在這種自上而下的方法中,計(jì)算機(jī)接收函數(shù)形式的指令,以知道要做什么,一步一步地執(zhí)行任何任務(wù)。
相反,函子在面向?qū)ο缶幊蹋∣OP)中發(fā)揮作用。
在 OOP 中,數(shù)據(jù)和函數(shù)(以及計(jì)算機(jī)行為)被封裝到對象中。函數(shù)不再是獨(dú)立的東西,但它們總是以模塊化的方式連接到對象。
每個(gè)對象“知道”如何執(zhí)行其任務(wù)并與構(gòu)成應(yīng)用程序本身的其他對象交互。
函子是表現(xiàn)得像函數(shù)的對象。它們是類對象,可以重載函數(shù)operator()并充當(dāng)函數(shù)本身。他們可以封裝自己的函數(shù),并在需要時(shí)執(zhí)行。
可以構(gòu)建指向成員函數(shù)或任意類的指針,因此無論它們的類如何,都可以通過相同的接口調(diào)用它們。
例如:假設(shè)我們有一名卡車司機(jī)(我們的對象),并且我們希望他們到達(dá)某個(gè)位置。在 PP 中,你必須遞給他們一本包含如何驅(qū)動(函數(shù))說明的書,而在 OOP 中,這種“知識”已經(jīng)是對象本身的一部分。
因此,這些指令決定了卡車在某些道路上必須保持的速度,例如城市道路上的 55 英里/小時(shí)、高速公路上的 65 英里/小時(shí)和高速公路上的 70 英里/小時(shí)。現(xiàn)在讓我們想象一下,有一天我們收到一份緊急交貨,我們希望他將速度提高 15 英里/小時(shí)。在并程中,我們必須編寫幾個(gè)不同的函數(shù)來修改每個(gè)速度。
相反,在 OOP 中,我們只需要一個(gè)仿函數(shù)將它們?nèi)吭黾?15 英里/小時(shí),因?yàn)樵搶ο笫且粋€(gè)為重載操作符()而創(chuàng)建的類。
上一篇我們送上的文章是
什么是業(yè)務(wù)連續(xù)性以及如何實(shí)施成功的遠(yuǎn)程工作環(huán)境? , _!在下一篇繼續(xù)做詳細(xì)介紹,如需了解更多,請持續(xù)關(guān)注。
本文由
日本NEC鋰電池中國營銷中心于2023-07-16 17:35:31 整理發(fā)布。
轉(zhuǎn)載請注明出處.