2

fooがパラメータとしてscriptblockを受け取るこれらのPowerShell関数を考えると:

function bar($name)
{
    "Hello World $name"
}

function foo([scriptblock]$fun={})
{
    &$fun "Bart"
}

関数fooで{}の代わりに$funのデフォルトとして関数バーを指定することは可能ですか?

4

1 に答える 1

2

はい、可能です。たとえば、この方法は、次の関数を渡す場合に機能します。

foo ((get-command bar).scriptblock)

あなたの場合、それは印刷します

Hello World Bart

したがって、これをデフォルトのパラメータとして使用するには、次のようにします。

function foo([scriptblock]$fun=(get-command bar).scriptblock)
{
    &$fun "Bart"
}

今電話するだけ

foo

同じ結果が得られます。

于 2012-10-15T14:08:32.627 に答える