2021.06.21
ヨーダ記法に代わるNull判定(PowerShell7)
ヨーダ記法に代わるNull判定(PowerShell7)
PowerShellでは、変数がnullであることをチェックするとき、
$nullを左側に書き、検査対象の変数を右側に書く、ヨーダ記法をしなければいけません。
なぜなら、$nullを右側に書くと、変数がコレクションである場合、コレクションの各要素が$nullであるもののみを、
抜き出した新しい配列を作るフィルターとして、-eq演算子が機能してしまうためです。
if($null -eq $object){ Write-Host '$object is null!'; }
これを、コード設計の理念上、
避けたい場合、ラッパー関数を作る必要があります。
サンプルコード
サンプルコードを以下に載せます。
function Is-Null{ param([Object] $object) return ($null -eq $object); }
動作サンプル
空配列や、中身にnullが詰まっている配列には反応せず、
$nullや、初期値が明示的に代入されなかった変数($nullが自動的に入る)にのみ、
反応してTrueを返していますね。