Powershell - mendeklarasikan array array tidak begitu mudah? [duplikat]
Saya mencoba mendeskripsikan 'daftar' kecil hal-hal, menggunakan array array. Perilaku aneh yang saya amati:
function write-it-out([array] $arrays) { foreach($a in $arrays) { write-host "items" $a[0] $a[1] } } $arrayOfArrays1 = @(
@("apple","orange"),
@("monkey","bear")
)
$arrayOfArrays2 = @( @("android","linux") ) # it works write-it-out $arrayOfArrays1
# it wont
write-it-out $arrayOfArrays2
Kasus pertama mengeluarkan dua baris yang diharapkan dengan konten berikut:
item item apel jeruk
monyet beruang
Tapi panggilan fungsi kedua tidak menghasilkan yang diharapkan
item android linux
tapi
item dan
item li
Apakah ada yang tahu kenapa? Dan bagaimana menggambarkan sebuah array yang hanya berisi satu array di dalamnya, tidak lebih dari satu? Lalu bagaimana cara memperbaikinya? Terima kasih teman-teman sebelumnya!
Jawaban
Saya tidak yakin mengapa , tetapi ketika Anda mendeklarasikan $arrayOfArrays2, PowerShell segera membuka gulungan larik luar.
> $arrayOfArrays2.Count
2
> $arrayOfArrays2[0]
android
Agar tidak melakukan itu, Anda bisa menambahkan koma ekstra di dalam deklarasi array luar seperti ini.
> $arrayOfArrays2 = @(,@("android","linux"))
> $arrayOfArrays2.Count 1 > $arrayOfArrays2[0]
android
linux
> write-it-out $arrayOfArrays2
Items android linux