[英]Powershell: How to add null parameters in function call with Splatting
我有一個使用Splatting實現的函數調用。
$funtioncall= @{
Param1=$Param1;
Param2=$Param2;
Param3=$Param3;
Param4=$Param4;
Param5=$Param5;
}
function @functioncall
在某些情況下,僅當它們不為null時,我希望向函數調用中添加另外兩個可選參數。
所以我有$ OptionalParam1和$ OptionalParam2
我目前有以下代碼來啟用splatting,因為它將不允許在哈希表中包含空值!
if(($OptionalParam1)-and($OptionalParam2))
{
$funtioncall= @{
Param1=$Param1;
Param2=$Param2;
Param3=$Param3;
Param4=$Param4;
Param5=$Param5;
OptionalParam1=$OptionalParam1;
OptionalParam2=$OptionalParam2;
}
}
else
{
$funtioncall= @{
Param1=$Param1;
Param2=$Param2;
Param3=$Param3;
Param4=$Param4;
Param5=$Param5;
}
}
function @functioncall
有什么我可以通過Splatting進行的更簡單的方法嗎?
這無需飛濺,將更易於實現,並且函數調用如下所示((因為我可以在函數中定義參數以允許null)
function -Param1 $Param1 -Param2 $Param2 -Param3 $Param3 -Param4 $Param4 -Param5 $Param5 -OptionalParam1 $OptionalParam1 -OptionalParam2 $OptionalParam2
您不必更改任何內容。 $null
仍然是一個值,因此根本沒有理由$funtioncall
不同地處理變量$funtioncall
$param1 = "Awesome"
$OptionalParam1 = $null
$funtioncall= @{
Param1=$Param1;
OptionalParam1=$OptionalParam1;
}
因此,現在哈希表包含OptionalParam1
的null
Name Value
---- -----
OptionalParam1
Param1 Awesome
因此,只要您的函數可以處理參數為null的可能性,就不會有問題。 我做了一個顯示這些值的小函數。
This @funtioncall
Param1 is 'Awesome'
OptionalParam1 is ''
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.