W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
“高階函數(shù)”是函數(shù)式編程中的關(guān)鍵的知識。從維基百科的解釋來看,一個高階函數(shù)應(yīng)該達到以下的兩個要求:
在Objective-c中我們經(jīng)常使用block作為函數(shù)。我們不需要跋山涉水地去尋找“高階函數(shù)”,實際上,Apple為我們提供的Foundation庫中就有??紤]象下面這么簡單的一個NSNumber 的數(shù)組:
NSArray * array = @[ @(1), @(2), @(3) ];
我們想要枚舉這個數(shù)組的內(nèi)容,利用數(shù)組元素來做些事情。
我們可以用一個NSArray的高階函數(shù)來代替for循環(huán)。代碼如下:
for (NSNumber *number in array) NSLog(@"%@",number);
。。。這個等同于下面的高階函數(shù):
[array enumerateObjectsUsingBlock:^(NSNumber *number, NSUInteger idx, BOOL *stop)
{
NSLog(@"%@",number);
}];
"為什么?","這代碼不是更多了嗎?".
好吧,確實是這樣,但這是通往函數(shù)式編程道路上的第一步:函數(shù)的啟蒙教育。就像上一章節(jié)所說的,如何在只關(guān)注任務(wù)本身的前提下去完成任務(wù)?這只是為即將到來的便利付出的一點點代價,相信我。
實際上,高階函數(shù)是很抽象的東西,我們所做的事情(命令式編程)基本上都可以用它來抽象。但Foundation中高階函數(shù)的程度很低,要了解更多,我們不得不借助開源社區(qū)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: