篩選器是函數(shù)的一種特殊形式。 定義篩選器: Filter(關(guān)鍵字) 篩選器名 (參數(shù)) {代碼} 與定義函數(shù)不同的是,函數(shù)使用"$input"變量來從管道符中獲取信息,而篩選器使用的是變量"$_"。在對數(shù)據(jù)的處理方面,函數(shù)與篩選器也有著不同,在函數(shù)中,"$input"變量會接受所有的信息,再進行運算,而在篩選器中,"$_"變量會一邊接受來自管道符的信息,一邊進行篩選(運算)操作。 總結(jié)說來,對于函數(shù):管道符將數(shù)據(jù)一次以集合方式傳入函數(shù)內(nèi)部,函數(shù)需要使用循環(huán)或者遞歸方式處理。對于篩選器:管道符每傳入一個數(shù)據(jù),代碼就執(zhí)行一次,直至所有數(shù)據(jù)傳入完畢。 上一節(jié)講述函數(shù)的最后,使用了如下的例子: function fun{ begin{ "Start" $i=1 } process{ "run "+$i $_.name $i++ } end{ "End" } } ls | fun 在這里,對其稍作修改,改為: function fun{ "run" $_.name } ls | fun 運行結(jié)果如下: ![]() 可以看到,并沒有做任何"ls"輸出。在原示例中,因為使用了"process"聲明,因此,代碼塊得以往復(fù)執(zhí)行直至數(shù)據(jù)處理結(jié)束,但是,此例中其結(jié)果與之大相徑庭。 若將其修改為如下形式: filter fun{ "run" $_.name } ls | fun 運行結(jié)果: ![]() 如此便可以看到與上一節(jié)內(nèi)容一樣的輸出。 也就是說,內(nèi)部含有"process"標記代碼塊的函數(shù),同樣具有篩選器的作用。 |
免責聲明:本站部分文章和圖片均來自用戶投稿和網(wǎng)絡(luò)收集,旨在傳播知識,文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請勿用于商業(yè)用途,如果損害了您的權(quán)利,請聯(lián)系我們及時修正或刪除。謝謝!
始終以前瞻性的眼光聚焦站長、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領(lǐng)域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長轉(zhuǎn)型升級,為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營銷服務(wù),與站長一起進步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨!
掃一掃,關(guān)注站長網(wǎng)微信