0 -eq "" True 最佳答案 是的,PowerShell中的-eq不是等-6ren">
gpt4 book ai didi

PowerShell相等运算符不是对称关系吗?

转载 作者:行者123 更新时间:2023-12-04 03:53:45 24 4
gpt4 key购买 nike

有人可以向我解释为什么PowerShell中的相等运算符不是对称关系吗?

PS> "" -eq 0
False
PS> 0 -eq ""
True

最佳答案

是的,PowerShell中的-eq不是等价关系。尽管理论家可能会为此感到恐惧,但这主要是为了使该语言更好地传达思想和更易于理解。

例如,PowerShell始终尝试将二进制运算符中的不同类型转换为左操作数的类型,这就是为什么您看到问题中的行为的原因。在实践中,除了人为的例子,我发现这很少有问题。在我自己的数据中,我通常使用匹配类型编写比较,并且在处理其他数据时,转换通常不会有害,因为它们会破坏含义。在这种情况下,我认为语言的可预测性比达到数学理想更为重要(考虑到计算机中的数字只是数学实体的近似值,这在任何地方都无法实现)。

另一件事是,如果比较运算符的左操作数(-eq-gt-lt-ge-le-match,...)是一个集合,则该运算符将返回该集合中将产生真值的所有项目。在这种情况下,您可以快速过滤集合而不需要where,但是我想真正的好处是您可以编写条件if ($foo -gt 4),这意味着»if$foo是大于4的标量值或»if $foo是一个包含大于4«的项目的集合,而无需将管道插入if中。

关于PowerShell相等运算符不是对称关系吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10185879/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com