2014-11-05 22 views
6

[string[]]$MyStuff'u ne zaman kullanacağınız hakkında bilgi bulmaya çalışıyorum. Bu bir dizi karakter mi, yoksa sadece açık dizge olan öğelerle mi yoksa ...?Powershell'de, ne tür bir veri türü [string []] ve ne zaman kullanacaksınız?

Bu senaryo örneklerinde kullanılmış olduğunu gördüm ve gerçekten açık değil. Çoğunlukla, bazı yerel olmayan yardımcı programların çıktısını alan değişkenler için veya bir işlevin girdi parametresi için veri türü olarak kullanıldığını gördüm.

Bu ekstra parantezler ne anlama geliyor?

+0

Tüm cevaplarınız harikaydı. Teşekkürler bir ton beyler! – Cignul9

cevap

12

Bir dizi dizeyi tanımlar. bir dizi initialising aşağıdaki yollarını düşünün: Varsayılan olarak

[PS] > [string[]]$s1 = "foo","bar","one","two",3,4 
[PS] > $s2 = "foo","bar","one","two",3,4 

[PS] > $s1.gettype() 

IsPublic IsSerial Name          BaseType 
-------- -------- ----          -------- 
True  True  String[]         System.Array 

[PS] > $s2.gettype() 

IsPublic IsSerial Name          BaseType 
-------- -------- ----          -------- 
True  True  Object[]         System.Array 

, bir Powershell dizi gerekirse belirli bir tür atama olacak nesnelerin bir dizidir. Bunların her birinin 5 eleman ne tür zaman karar nasıl bak:

[PS] > $s1[4].gettype() 

IsPublic IsSerial Name          BaseType 
-------- -------- ----          -------- 
True  True  String         System.Object 


[PS] > $s2[4].gettype() 

IsPublic IsSerial Name          BaseType 
-------- -------- ----          -------- 
True  True  Int32         System.ValueType 


[PS] > $s1[4] 
3 
[PS] > $s2[4] 
3 

diziye geçirilen ham 3 aksine bir String türüne dönüştürülür edildiğini $s1 oluşturarak anlamına gelmektedir [string[]] kullanımı Object dizisinde saklandığında Int32.

1

Bu bir dizi dizisidir. Örneğin:

[string[]] $var = @("Batman", "Robin", "The Joker") 

Öyleyse şöyle dizinizi erişebilirsiniz:

$var[0] 

İade "Batman"

$var[1] 

İade "Robin". Ve bunun gibi.

İlgili konular