PS C:\Users\Scott> $openlog = "YES"
PS C:\Users\Scott> ($openlog -eq "YES") ? ($openlog = "NO") : ($openlog = "YES")
NO
PS C:\Users\Scott> ($openlog -eq "YES") ? ($openlog = "NO") : ($openlog = "YES")
YES
PS C:\Users\Scott> ($openlog -eq "YES") ? ($openlog = "NO") : ($openlog = "YES")
NO
PS C:\Users\Scott> ($openlog -eq "YES") ? ($openlog = "NO") : ($openlog = "YES")
YES
PS C:\Users\Scott>
这有效,即它会切换值,但也会将其写入控制台。为什么?如何在不使用 | 的情况下正确执行此操作并且不输出新值输出为空
?
最佳答案
您可以使用下面的代码来设置变量,而无需输出到控制台。
$openlog = $openlog -eq "是"? “否”:"is"
我还不知道为什么你的示例输出到控制台。我浏览了implementation这是一个从未处理过并且在测试期间也没有处理的用例。
更新:正如下面 mklement0 提到的
enclosing an assignment in
(...)
passes the value being assigned through
关于conditional-operator - 三元比较输出新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68641111/