为什么这个表达式返回 False 而不是 True ?
$true -or $false -and $false
-and-or正如Microsoft Powershell 文档所确认的那样,应优先于.
但看起来表达式被评估为($true -or $false) -and $false而不是$true -or ($false -and $false)!
有人可以向我解释我在这里缺少什么吗?
mkl*_*nt0 10
链接的文档没有声明优先-and于-or- 相反,它声明-and和-or- 可能令人惊讶的是[1] -在 PowerShell 中具有相同的优先级[2] 。
因此:
$true -or $false -and $false
Run Code Online (Sandbox Code Playgroud)
是 - 由于隐含的左关联性 - 评估为:
($true -or $false) -and $false # -> $false
Run Code Online (Sandbox Code Playgroud)
换句话说:用于(...)根据需要覆盖此左关联性:
$true -or ($false -and $false) # -> $true
Run Code Online (Sandbox Code Playgroud)
[1] 请参阅GitHub 问题 #8512进行讨论。
[2]文档列表-and -or -xor在同一行,这意味着所有这些运算符具有相同的优先级。
| 归档时间: |
|
| 查看次数: |
718 次 |
| 最近记录: |