PowerShell: 連想配列の「要素の参照」と「値の代入」
PowerShellの連想配列(ハッシュテーブル)で、 要素値の参照と値を代入する方法を解説します。
連想配列の各要素は「キー」と「値」のペアとなっており、 PowerShellで連想配列のキーを指定する方法は次の3通りあります。書式
$連想配列名.キー $連想配列名[キー] $連想配列名.Item(キー)
上の3つのいずれの方法でも構いません。 2番目の方法は [] 角括弧、3番目の方法は () 丸括弧と 括弧の種類が違うので注意が必要です。 ここでは最もシンプルな1番目の . ドットを使った 「$連想配列名.キー」の方法を主に使います。
参照
連想配列の要素の値を参照する場合は、 次のように参照したいキーを指定するだけです。 キー a は3通りの方法で参照しています。
$h = @{ a = 100 b = 200 } # a を参照 Write-Host $h.a # 100 Write-Host $h["a"] # 100 Write-Host $h.Item("a") # 100 # b を参照 Write-Host $h.b # 200
存在しないキーを指定した場合、エラーではなく「Null」になります。
次のコードでは存在しないキー「z」を指定し、
その参照値がNullかどうかを比較演算子を使って判定しています。
$h = @{a = 100; b = 200} Write-Host $h.a # 100 Write-Host $h.z # 何も表示されない # Null判定 if ($h.z -eq $null){ Write-Host "Nullです" } else { Write-Host "Nullではありません" } # 実行結果 100 Nullです
代入
連想配列に値を代入する場合、 代入演算子を使って「$連想配列名.キー = 値」と記述します。
次のコードではキー「a」に500を代入しています。
$h = @{a = 100; b = 200} # 代入 $h.a = 500 Write-Host $h.a # 500
存在しないキーを指定して値を代入した場合、 エラーではなく新しい「キー・値」のペアが追加されます。
次のコードでは存在しないキー「z」を指定して値を代入した結果、 連想配列のペア(キー・値)が追加されていることが確認できます。
$h = @{a = 100; b = 200} $h.z = 400 $h # 実行結果 Name Value ---- ----- z 400 b 200 a 100