PowerShellの三項演算子を使用した条件ロジックの簡略化

if/then構造はPowerShellコードでよく使われますが、もう一つの方法である三項演算子を使うことで、if/then構造をより簡潔に記述することができることを知っていましたか?カスタムのPowerShell三項演算子の作り方を学びましょう。

可読性が犠牲になると言われていますが、三項演算子はより簡潔で、シンプルで、コードが少なくなる条件付きのロジックを作成することができます。彼らは正しいですが、PowerShellでそのような三項演算子のような動作を持つことは本当に素晴らしいことです!

もし三項演算子についてよく知らない場合、基本的にはハッシュテーブルや同様の構造を使用して、条件に基づいて条件付きの判断を行うものです。

PowerShellのIf/Then

PowerShellの三項演算子を説明するために、まずはif/then構造の例から始めましょう。

$CarColor = 'Blue'
if ($CarColor -eq 'Blue') {
    'The car color is blue'
} else {
    'The car color is not blue'
}

一見すると、何も問題はないと思うかもしれません。実際、本当に問題はありませんが、この条件は1行で簡単にテストすることができます(私の個人的な文字制限内で115文字以下)。

次に、2つのキー($true$false)を持つPowerShellのハッシュテーブルを作成します。そして、定義した条件が満たされた場合に表示される値を設定します。

@{ $true = 'The car color is blue'; $false = 'The car color is not blue' }
[$CarColor -eq 'Blue']

次に、条件($CarColorがBlueである)を定義し、$CarColor -eq 'Blue'でその条件が満たされているかどうかを確認します。

$CarColor = 'Blue'
@{ $true = 'The car color is blue'; $false = 'The car color is not blue'}
$CarColor -eq 'Blue'

今度は、条件($CarColor -eq 'Blue')をハッシュテーブルのキーとして使用します。これにより、チェックが実行され、その結果を使ってハッシュテーブル内のキーを検索します。

PowerShell三項演算子の完成

$CarColor = 'Blue'
@{ $true = 'The car color is blue'; $false = 'The car color is not blue'}[$CarColor -eq 'Blue']
A custom PowerShell ternary operator

1行!これはもっと簡潔ですね?if/then文の代わりにハッシュテーブルを使用し、$CarColorBlueかどうかに基づいて検索を行っています。その結果のインデックスがコンソールに出力されます。この方法を使用したい場合は、次の空欄を埋めるだけです:

@{$true = $ResultyouwanttodoifTrue; $false = $ResultyouwantifFalse}[]

$true$falseだけでなく、他の条件もハッシュテーブルに追加してチェックすることもできます。これは、長いif/then文やswitch文を置き換える簡単な方法です。

これで、今日からスクリプトで使用できるカスタムのPowerShell三項演算子が手に入りました!

Source:
https://adamtheautomator.com/powershell-ternary/