はじめに
先日に職場で見かけたPowerShellのコードで、関数のパラメーターに「switch」という見慣れないデータ型が指定されていました。
私が今まで使ってきた言語では見たことがないデータ型だったので、今回は「switch」というパラメーターについて調べた結果をまとめてみました。
switchパラメーターとは?
- こちらの記事には、「switch パラメータは引数の値が指定されなくてもその、引数名が指定されたかだけで判断します」と書かれています。
- 前回の記事では
-パラメーター名 {値}
という書き方をしましたが、-パラメーター名
だけで引数が指定されたことになるようです。
switchパラメーターの使い方
- パラメーターに
[string]
などのデータ型の代わりに、[switch]
と指定します。 - switchパラメーターはブール値(Boolean型)と同じように扱えるので、if文でパラメーターがセットされているかどうかを判定できます。
- 関数の呼び出し側では、switchパラメーターの変数名にハイフンを付けた
-japanese
というパラメーターを指定しています。- 関数を呼び出す側で
$true
/$false
を指定するよりも、switchパラメーターを使った方が「何の処理に使われるパラメーターなのか」ということが推測しやすくなるので、コードの可読性が上がると思います。
- 関数を呼び出す側で
switchパラメーター付きの関数の例
function SayHello {
param([switch]$japanese)
if ($japanese) {
Write-Host "こんにちは"
} else {
Write-Host "Hello"
}
}
実行結果
> SayHello -japanese
こんにちは
> SayHello
Hello