我正在尝试制作一个简单的“ coalesce”功能,但在Powershell返回语法方面苦苦挣扎
尝试:
function coalesce {
foreach($item in $args) {
if ($item) {
return $item
break # also tried continue and exit
}
}
}
coalesce($nil,2,3)
2
3
function coalesce {
ForEach-Object -InputObject $args { If($_) { return $_; exit } } # also tried continue and break
}
coalesce($nil,2,3)
2
3
那么我如何在循环中模拟return
并以其他任何编程语言退出函数?
答案 0 :(得分:1)
在powershell中,如果调用带有用逗号分隔的项目包裹的括号的函数,则会得到一个对象。 [ grin ]您的函数正在运行,并返回三个对象的数组。因此,使用三个输入来调用该函数的正确方法是...
coalesce $Null 2 3
还请注意,$nil
不是$Null
...它是一个名为nil
的新变量,其中没有任何内容-换句话说,值为$Null
在里面。