Как указать функцию по умолчанию для параметра scriptblock в функции PowerShell?
Учитывая эти функции powershell, где foo принимает блок скриптов в качестве параметра:
function bar($name)
{
"Hello World $name"
}
function foo([scriptblock]$fun={})
{
&$fun "Bart"
}
Можно ли указать функциональную панель по умолчанию для $fun вместо {} в функции foo?
1 ответ
Решение
Да, это возможно. Например, этот способ работает для передачи функции в:
foo ((get-command bar).scriptblock)
В вашем случае это печатает
Hello World Bart
Таким образом, чтобы использовать его в качестве параметра по умолчанию:
function foo([scriptblock]$fun=(get-command bar).scriptblock)
{
&$fun "Bart"
}
Сейчас просто звоню
foo
получает тот же результат.