Ответ 1
Bart de Smet имеет большое объяснение * параметра splatting в Windows PowerShell 2.0 Feature Focus - Splat, Split и Join.
* Как обычно - если вы выродка PowerShell, вы должны ему найти место в своем RSS-канале.
Я уверен, что где-то я прочитал, что есть простой способ передать именованные параметры из вызывающей функции вызываемой функции без явного указания и указания каждого параметра.
Это больше, чем просто повторное использование позиции; Меня интересует случай, когда имя переданных параметров в некоторых случаях одинаково, но не в других.
Я также думаю, что есть способ, который не зависит от положения.
function called-func {
param([string]$foo, [string]$baz, [string]$bar)
write-debug $baz
write-host $foo,$bar
}
function calling-func {
param([int]$rep = 1, [string]$foo, [string]$bar)
1..$rep | %{
called-func -foo $foo -bar $bar -baz $rep ## <---- Should this be simpler?
}
}
calling-func -rep 10 -foo "Hello" -bar "World"
Каким будет метод, и есть ли ссылка?
Я думал, что это был Джеффри Сновер, но я не уверен.
Bart de Smet имеет большое объяснение * параметра splatting в Windows PowerShell 2.0 Feature Focus - Splat, Split и Join.
* Как обычно - если вы выродка PowerShell, вы должны ему найти место в своем RSS-канале.
В PowerShell v2 (который, по общему признанию, вы еще не готовы к переходу на него), вы можете передавать параметры, не зная о них раньше:
called-func $PSBoundParameters
PSBoundParameters - это словарь всех параметров, которые были фактически предоставлены вашей функции. Вы можете удалить параметры, которые вы не хотите (или добавить, я полагаю).
Ну, я думаю, что я запутался в сообщении в блоге Я читал о параметрах переключателя. Насколько я могу сказать, лучший способ - просто повторно использовать такие параметры:
called-func -foo:$foo -bar:$bar
Как насчет
called-func $foo $bar