使用return
后跟一个简单的表达式相当自然。这在一定程度上适用于PowerShell:
return 1+1; # evaluates the expression and returns 2
function Increment-Variable([int] $a)
{
return $a + 1
}
return Increment-Variable 23; #Expression evaluated: returns 24
但由于某些原因,我的PowerShell(v4)拒绝以下内容。
return if ($True) { 2 } else { 3 } #Error: Expression not parsed/evaluated
带
The term 'if' is not recognized as the name of a cmdlet, function,
script file, or operable program.
用括号括起来并没有帮助。
答案 0 :(得分:2)
将语句包含在子表达式中,解析器不会抱怨:
return $(if ($True) { 2 } else { 3 })
about_Operators
帮助页面中记录了这一点:
Get-Help about_Operators
您可以在about_Operator_Precedence
页面找到有关操作符和括号优先级的信息:
Get-Help about_Operator_Precedence