【Powershell】【靜態數組】 數組的使用(一)


一、數組的創建

1. 使用@()來聲明數組,或者直接”,”來分隔創建;wKiom1W02mqSLUL8AAAtNiLMx5U667.jpg

2. 通過此種方式創建的數組為固定大小的數組,無法使用addremove等操作;wKiom1W02mrR-xEtAACggCPShTk877.jpg

3. 空數組和單元素數組的定義;

wKioL1W03FXT3DF7AAAqizYNnRs107.jpg


二、數組的訪問

1. 訪問數組時可通過對數組元素使用索引尋址,第一個元素的索引地址為0,依次遞加,第n個元素的索引地址為n-1,最后一個元素的索引地址為count-1,也可以直接使用-1來替代;

2. 當需要輸出多個索引地址時,可以使用“,”分隔來進行選取;

wKiom1W02mvgxJ9uAACiHVkBTS0710.jpg


三、數組元素的添加和刪除

1. PowerShell中,數組其實是一個大小固定的數據結構,如果需要向數組中添加更多的對象時,就必須使用加號“+”運算符。在執行“+”操作的過程中,PowerShell實際上進行了下述操作:

  • 首先創建一個新的數組,該數組的大小能夠存下運算結果的所有對象;

  • 將第一個數組的成員拷貝到新數組中;

  • 將第二個數組的成員拷貝到新數組中。

wKioL1W03FWATdEBAAA7rIre7eU594.jpg

2. 元素的刪除則相當於同時選擇數組中的多個元素並將其重新定義為一個新數組;

wKiom1W02mvymwkiAABDIFqUq4Y536.jpg

3. 數組添加空值,$Array1 += $null.

四、數組的復制

    數組屬於引用類型,使用默認的的賦值運算符在兩個變量之間賦值只是復制了一個引用,兩個變量共享同一份數據,這樣當你對數組的元素進行修改時就會修改到原數據,導致所有復制的數組元素都會改變。


通過下圖你可以看到元素$Array1[1]被修改后,$Array2[1]同樣也被修改:

wKioL1W03FWQfMaMAADvmuUDNQs760.jpg


使用Clone的方法后,$Array1與$Array2將使用兩份數據,兩者之間不再有任何關聯:

wKiom1W02mvzmmFSAAC6rRotQWY642.jpg


五、數組的強類型和弱類型

1. Powershell數組一般具有多態性,如果你不指定元素的具體類型,解釋器會自動選擇合適的類型存儲每個元素。即在默認情況下,數組中元素的類型為弱類型,默認可以存儲不同類型的值.wKiom1W02m3xl4vdAABfxVu0Qjs193.jpg


2. 可以通過指定數組的類型來將數組轉換為強類型,即只能存儲某種指定類型的值,在輸入其他類型的值后會提示錯誤.

wKioL1W03Ffyu-rnAAEHKH6Usv8943.jpg

六、數組對象的驗證

    PowerShell中的數組可以不通過管道,直接使用通配符進行迭代驗證,例如檢查數組是否包含特定元素,這個特定的元素可以是具體的一個元素,也可以是一個通配符元素.

下例中驗證了contain與like,同樣適用於類似的其他方法。

wKiom1W02m3DL7NdAABTymlnD8U256.jpg


七、Powershell命令返回數組

    當我們把一個命令的執行結果保存到一個變量中,可能會認為變量存放的是純文本,事實上Powershell會把文本按每一行作為元素存為數組。如果一個命令的返回值不止一個結果時,Powershell也會自動把結果存儲為數組。

wKioL1W03FeijHbeAADb24mLKFI727.jpg


八、Function返回數組作為一個整體

    如果一個函數返回了不止一個值,PowerShell會自動將它們包裝成一個數組,但是如果你把它通過管道傳遞給另一個函數,PowerShell又會自動地把它拆成一個個的元素,如果你想擺脫PowerShell這多管閑事,不想集合被解析成單個元素,而是作為一個整體傳遞給管道,可以這樣做,將你的數組放在另外一個數組中:

functionTest-ArrayAsReturnValue2

{

  param($count)

  $array= 1..$count

  return,$array

}


Note:本文部分內容來自於http://www.pstips.net,本人進行了搜集整理進行自我學習並分享出來供大家學習。


本文出自 “精華薈萃” 博客,請務必保留此出處http://simy88.blog.51cto.com/7370552/1678529


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com