戻り値
戻り値を設定するにはreturnキーワードを使用します。
下記は、引数で受け取った2つの値を足し算してreturnで返します。
PS > function Add3 ([int]$x, [int]$y)
>> {
>> return $x + $y
>> }
>>
returnで返される値は、下記のようにして変数に代入することができます。
PS > $ret = Add3 3 4
この場合は$retに3 + 4の結果が代入されます。
引数の位置指定
関数呼び出し時に引数名を指定すると、引数の順番を変更することができます。
下記はBMIを計算する関数です。
PS > function BMI($weight, $height) {
>> return $weight / [math]::pow($height,2)
>> }
>>
関数の呼び出しを、
PS> BMI 65 1.75
とした場合は、体重が65kg、身長が1.75mのBMIを求めることになり、結果として21.2244897959184という値が返されます。
これを
PS > BMI -height 1.75 -weight 65
として実行しても同じ結果が返されます。これは、関数呼び出し時に、引数heightには1.75、weightには65を渡すことを明示的に指定しているからです。
このようにPowerShellでは、どの引数に何の値を渡すかを指定することで、引数の順番を変更することが可能です。
BMIは 体重(kg)÷(身長(m)*身長(m)) で求めることができます。
ちなみにBMI 25以上が肥満、22が標準、18以下がやせ です
switchパラメータ
switchパラメータとは、その名の通りスイッチのような役割をする引数です。
PS > function Say-Hello ([switch]$help)
>> {
>> if ( $help )
>> {
>> Write-Host "これはSay-Hello関数の説明です"
>> }
>> else
>> {
>> Write-Host "Hello!!"
>> }
>> }
この関数を、
PS > Say-Hello -help
として呼び出すと、「これはSay-Hello関数の説明です」と表示されます。これは、関数Say-Helloにスイッチ-helpを指定すると、$helpにTrueの値がセットされるためです。
このようにswitchパラメータは、引数に値を渡さずに、パラメータの指定によって処理内容を分岐させたいときに有効です。
まとめ
今回は、次の内容について解説しました。
- 関数の基礎
- 引数の使い方
- 戻り値
switchパラメータ
今回の説明ではコンソールウィンドウで関数を作成しました。次回は関数をファイルとして作成し、利用する方法について解説したいと思います。
