ハッシュの値を加算・減算する関数を作成しました。
具体例としては、以下のH1とH2というハッシュに対して加算する場合、緑の部分を加算します。
H1 | H2 |
キー | 値 | キー | 値 |
one | 11 | zero | 0 |
two | 12 | one | 1 |
three | 13 | two | 2 |
four | 14 | three | 3 |
そして、結果は次のようなハッシュを返します。(重ならないキーは排除するようにします。)
結果 |
キー | 値 |
one | 12 |
two | 14 |
three | 16 |
以下が作成した関数を含む
スクリプトです。
Function HashValueNumCalc{
param($h1,$h2,$operator);
$r = @{};
foreach ( $v in $h1.keys ){
if ($h2.Containskey($v) ){
switch ($operator){
"-" {$r[$v] = $h1[$v] - $h2[$v];break}
"+" {$r[$v] = $h1[$v] + $h2[$v];break}
default {$r[$v] = $h1[$v] + $h2[$v]}
}
}
}
$r
}
$H1 = @{one = 11; two = 12; three = 13; four = 14}
$H2 = @{zeo = 0; one = 1; two = 2; three = 3}
HashValueNumCalc $H1 $H2 -;
write-Host "";
HashValueNumCalc $H1 $H2 +;
write-Host "";
HashValueNumCalc $H1 $H2;
実行結果は以下のようになります。