W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
過(guò)濾器是與ReactiveCocoa相關(guān)的另一個(gè)關(guān)鍵的高階函數(shù),我們接下來(lái)來(lái)學(xué)習(xí)如何使用高階過(guò)濾。一個(gè)列表通過(guò)過(guò)濾能夠返回一個(gè)只包含了原列表中符合條件的元素的新列表,接下來(lái)我們通過(guò)具體的例子進(jìn)行實(shí)踐:
NSArray *filteredArray = [array rx_filterWithBlock:^BOOL(id each){
return ([each integerValue] % 2 == 0);
}]
過(guò)濾后,現(xiàn)在filteredArray
等于@[ @2 ]
.如果沒(méi)有這樣的抽象方法(即高階過(guò)濾),我們不得不像下面這樣來(lái)完成工作:
NSMutableArray *mutableArray = [NSMutableArray arrayWithCapacity: array.count];
for ( NSNumber * number in array ){
if ( [number integerValue] % 2 == 0 ){
[mutableArray addObject:number];
}
}
NSArray *filteredArray = [NSArray arrayWithArray:mutableArray];
我們?cè)诿刻斓墓ぷ髦锌赡軙?huì)涉及到類(lèi)似這種高階映射或者高階過(guò)濾的事情多不勝數(shù)。這樣通過(guò)使用類(lèi)似高階過(guò)濾、高階映射的高階函數(shù),我們能夠把繁瑣又乏味的任務(wù)抽象出來(lái),讓工作變得更加輕松。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: