ファンクションに値渡しで引数を受け渡す法について、サンプルコードを用いて説明します。
引数の個数や型などを明確にせずに引数を受け渡す
function test { Write-Host "0:" $args[0] Write-Host "1:" $args[1] }
(補足説明)
引数全体は $args に格納されており、1 番目の引数から順に $args[0], $args[1] ... に格納されている。引数を渡す際には、スペースで区切って指定する。この場合は test "A" "B" のように指定する。区切り文字にカンマを使用しないので注意のこと。
引数の個数と型を明確にしてして引数を受け渡す
function test ([string]$name, [int]$age) { Write-Host "Name:" $name Write-Host "Age:" $age }
(補足説明)
この場合は test "Yamada" 20 のように指定すると、それぞれの変数に受け渡される。もし、test "Yamada" 20 "dummy" のように 3 個の引数を指定した場合には、$args[0] に最後の引数 "dummy" が受け渡される。
param で受け取りる
function test { param ([string]$name, [int]$age) Write-Host "Name:" $name Write-Host "Age:" $age }
ファンクションの引数に初期値を設定する
引数が指定されなかった時にはこの初期値が使用される。
function test ([string]$name = "No Name", [int]$age = 0) { Write-Host "Name:" $name Write-Host "Age:" $age }
ファンクションの引数に初期値を設定する
引数が指定されなかった時にはこの初期値が使用される。
function test ([string]$name = $("No Name"), [int]$age = $(0)) { Write-Host "Name:" $name Write-Host "Age:" $age }
この場合は引数を指定せずに test だけを実行すると、No Name と 0 が出力される。
ファンクションの引数が指定されなかった場合に例外を発生させる
function test ([string]$name = $(throw "No Name"), [int]$age = $(throw 0)) { Write-Host "Name:" $name Write-Host "Age:" $age }
この場合は引数を指定せずに test だけを実行すると、初期値を表示するとともに例外も発生する。