2

鉴于这些 powershell 函数,其中 foo 将脚本块作为参数:

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

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

是否可以在函数 foo 中将函数 bar 指定为 $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 回答