gpt4 book ai didi

function - 如何省略调用函数的$ null参数?

转载 作者:行者123 更新时间:2023-12-03 00:27:15 26 4
gpt4 key购买 nike

考虑这样的功能:

$missed = "{716C1AD7-0DA6-45e6-854E-4B466508EB96}"

function Test($foo = $missed, $bar = $missed)
{
if(!$foo)
{
throw "error"
}

if(!$bar)
{
throw "error"
}
}

我想这样调用这个函数
Test -foo $foo -bar $bar

但是,如果$ foo或$ bar为$ null,则会引发异常。天真的解决方案是
if($foo -and $bar)
{
Test -foo $foo -bar $bar
}
elseif ($foo)
{
Test -foo $foo
}
elseif ($bar)
{
Test -bar $bar
}
else
{
Test
}

我如何用一两行重写if / else块?

最佳答案

由于您无法控制“测试”功能,因此可以执行以下操作:

$params = @()
if ($foo) {
$params += "-Foo","`$foo"
}
if ($bar) {
$params += "-Bar","`$bar"
}
Invoke-Expression "Test $params"

关于function - 如何省略调用函数的$ null参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/728022/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com