在下面的示例中,我有一个IF
语句来确定Demo
递归调用时发送到哪些参数。如果$y
是一个布尔值而不是一个开关,我可以简单地调用Demo -x $x -y $y
;但作为一个开关,这不是一个可行的选择。
function Demo {
[CmdletBinding()]
param (
[int]$x
,[switch]$y
)
process {
$x--
if ($x -gt 0) {
"$x - $($y.IsPresent)"
if($y.IsPresent) {
Demo -x $x -y
} else {
Demo -x $x
}
}
}
}
Demo 10 -y
Demo 10
问题
以上是处理这种情况的正确方法,还是存在更清洁的选项?