Klasická a asociativní pole v Powershellu


Ach jo, proč to dělat jednoduše, když to jde složitě, aneb jak zprasit programovací jazyk. Na druhou stranu, plus je ten, že se s asociativními poli, alias hash tabulkami, pracuje velmi snadno. S hashovacími tabulkami se pracuje dokonce tak snadno, že skoro postrádá smysl používat obyčejné pole.

Klasické pole

$arr = @(1,2,3)
$arr[0]

Multidimenzionální klasické pole

$arr = @(1,2,3), @('a','b','c')
$arr[0][1]

$arr = @(1,2,3, @('a','b','c'))
$arr[3][0]

Asociativní pole, v PS označené jako hashovací tabulky

$arr = @{a = 1; b = 2; c = 3}
$arr.a

Multidimenzionální asociativní pole (nested hash table)

$arr = @{a = 1; b = 2; c = 3; d = @{ aa = 'a', bb = 'b'}}
$arr.a
$arr.d.aa

#přidání hodnoty
$arr.add('e', '5')
#jak přidat hodnoty do nested hash table jsem prozatím nevykoumal.

Na závěr tip: Pole lze snadno uložit takto

$arr | ConvertTo-JSON | Set-Content -Path $path
#nebo
$json = $arr | ConvertTo-JSON