程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 【探索PowerShell 】【十二】篩選器 - Filters

【探索PowerShell 】【十二】篩選器 - Filters

編輯:關於.NET

篩選器是函數的一種特殊形式。

定義篩選器:

Filter(關鍵字) 篩選器名 (參數) {代碼}

與定義函數不同的是,函數使用"$input"變量來從管道符中獲取信息,而篩選器使用的是變量"$_"。在對數據的處理方面,函數與篩選器也有著不同,在函數中,"$input"變量會接受所有的信息,再進行運算,而在篩選器中,"$_"變量會一邊接受來自管道符的信息,一邊進行篩選(運算)操作。

總結說來,對於函數:管道符將數據一次以集合方式傳入函數內部,函數需要使用循環或者遞歸方式處理。對於篩選器:管道符每傳入一個數據,代碼就執行一次,直至所有數據傳入完畢。

上一節講述函數的最後,使用了如下的例子:

function fun{
begin{
      "Start"
      $i=1
}

process{
      "run "+$i
      $_.name
      $i++
}

end{
      "End"
}
}

ls | fun

在這裡,對其稍作修改,改為:

function fun{
      "run"
      $_.name
}

ls | fun  

運行結果如下:

可以看到,並沒有做任何"ls"輸出。在原示例中,因為使用了"process"聲明,因此,代碼塊得以往復執行直至數據處理結束,但是,此例中其結果與之大相徑庭。

若將其修改為如下形式:

filter fun{
      "run"
      $_.name
}

ls | fun

運行結果:

如此便可以看到與上一節內容一樣的輸出。

也就是說,內部含有"process"標記代碼塊的函數,同樣具有篩選器的作用。

出處http://marui.blog.51cto.com/1034148/295412

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved