Developer

ヨーダ記法に代わるNull判定(PowerShell7)
2021.06.21
Lv1

ヨーダ記法に代わる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を返していますね。