जनरल कोडडिफ़ॉल्ट मूल्य वाले पैरामीटर्स PsBoundParameters में नहीं हैं?
इस कोड पर विचार करें:
PS> function Test { param($p='default value') $PsBoundParameters }
PS> Test 'some value'
Key Value
--- -----
p some value
PS> Test
# nothing
मैं उम्मीद करेंगे कि $PsBoundParameters
दोनों ही मामलों पर $p
चर के लिए रिकॉर्ड होते हैं। क्या यह सही व्यवहार है?
प्रश्न
मैं splatting कि कार्यों का एक बहुत कुछ के लिए इस तरह काम करेगा उपयोग करना चाहते हैं:
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 कॉल करने के लिए नहीं करना चाहते हैं:
SomeFuncWithManyRequiredParams -p1 $p1 -p2 $p2 -p3 $p3 ...
क्या यह संभव है?
प्रश्न पूछने वाले प्रत्येक पैरामीटर के लिए मुझे यहां दो प्रश्न पूछना होगा: कुछ फनक के पास SimplifiedFunc के समान डिफ़ॉल्ट मान क्यों नहीं है? और, यदि डिफ़ॉल्ट को अलग होने की आवश्यकता है, तो SimplifiedFunc उपयोगकर्ता को डिफ़ॉल्ट को ओवरराइड करने की अनुमति क्यों देता है (क्योंकि, उस स्थिति में, वे केवल कुछफनक को ओवरराइड करने के लिए सीधे कॉल कर सकते हैं)? – jpaugh