我主要使用 PowerShell 编写代码,我 85% 的脚本都是用它构建的。我继续编写代码的次数越多,我就越意识到我总是使用 IF 语句,公平地说,有时需要这样做,但由于我在代码中进行了大量检查和抛出,我发现我的脚本充满了这些语句。我可以采取什么不同的逻辑方法?
我尝试在线查找并找到了三元运算符,但无法找到 PowerShell 的良好文档。
假设您使用的是 PowerShell (Core) 7+,您可以使用以下结构来避免在简单情况下需要
if
语句:
?:
,三元条件运算符
# Alternative to:
# $foo = if ($true) { 'bar' } else { 'baz' }
$foo = $true ? 'bar' : 'baz'
??
,空合并运算符
# Alternative to:
# $foo = if ($null -ne $possiblyNull) { $possiblyNull } else { 'default' }
$foo = $possiblyNull ?? 'default'
?.
,空条件运算符
# Alternative to:
# if ($null -ne $possiblyNull) { $possiblyNull.ToString() }
${possiblyNull}?.ToString()
{...}
中才能使 ?.
按预期工作,因为 - 令人惊讶的是 - ?
是 PowerShell 变量名称中的合法字符。?
解释为 ?.
的一部分而不是作为变量名的一部分。可悲的是,尽管声称要重新审视这个问题 - 请参阅GitHub 问题 #14025 - 没有采取任何行动。