일반 코드PsBoundParameters에없는 기본값이있는 매개 변수는 무엇입니까?
이 코드 고려해
PS> function Test { param($p='default value') $PsBoundParameters }
PS> Test 'some value'
Key Value
--- -----
p some value
PS> Test
# nothing
내가 $PsBoundParameters
두 경우 모두에 $p
변수에 대한 기록을 포함 할 것이라고 기대합니다. 그게 올바른 행동인가요?
질문
나는 많은 기능이 같이 일하는 것이 스플래 사용하고 싶습니다: 나는 열거 된 모든 PARAMS와 SomeFuncWithManyRequiredParams를 호출하지 않으
function SomeFuncWithManyRequiredParams {
param(
[Parameter(Mandatory=$true)][string]$p1,
[Parameter(Mandatory=$true)][string]$p2,
[Parameter(Mandatory=$true)][string]$p3,
...other parameters
)
...
}
function SimplifiedFuncWithDefaultValues {
param(
[Parameter(Mandatory=$false)][string]$p1='default for p1',
[Parameter(Mandatory=$false)][string]$p2='default for p2',
[Parameter(Mandatory=$false)][string]$p3='default for p3',
...other parameters
)
SomeFuncWithManyRequiredParams @PsBoundParameters
}
를 :
SomeFuncWithManyRequiredParams -p1 $p1 -p2 $p2 -p3 $p3 ...
가능합니까?
문제의 각 매개 변수에 대해 질문해야 할 두 가지 질문이 있습니다. 왜 SomeFunc는 SimplifiedFunc와 동일한 기본값을 갖고 있지 않습니까? 그리고 기본값이 다른 경우 SimplifiedFunc에서 사용자가 기본값을 재정의하도록 허용하는 이유는 무엇입니까? (이 경우 단순히 SomeFunc를 직접 호출하여 재정의 할 수 있기 때문입니다.) – jpaugh