LoginSignup
13
6

More than 3 years have passed since last update.

なぜVisual Studio CodeはPowerShellで右辺に$nullを置くと怒り出すのか

Last updated at Posted at 2019-10-20

Visual Studio Code(以下VSCode)はPowerShell開発に最適!

PowerShellで開発するのであれば
・テキストエディタ
・PowerShellISE
・VSCode
あたりが候補となるかと思う。

個人的には、インテリセンスが効き呼び出し元メソッドをたどるのも楽なのでVSCodeが最適だと思っている

VSCodeは比較の際に\$nullを左に置くことを推奨している

test.ps1
if($a -eq $null){
    DoSomething
}

こういう書き方をすると、以下の警告メッセージが発生する(動かないわけではない)
左辺null.png

なぜ$null左辺が推奨されるのか

理由は、PowerShellの-eqは左辺にArrayが来た場合にフィルターとして働くため
例えば

test.ps1
1,2,3 -eq 2

という式は、左辺の中で2に等しい値を返却する(なので、この式は2を返す)
左辺に配列が来る場合その内容により意図せぬ動作をする可能性があるため、左辺\$nullが推奨されている

リーダブルコードにおいては

右辺は不動のもの、左辺は変動するものという運用が推奨されている(PowerShellの話ではなく、比較の全般的な話として)

コードを書く際に必ず左辺に配列が来ない箇所であれば右辺\$nullも許容されそうだが
・そもそも動的型付け言語なので左辺に配列が来ないことを保証しにくい
・左辺に配列が来る場合と来ない場合で書き方が混在してしまう
といったところから、やはり左辺\$nullに統一するのがベストかと思う

13
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
6