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