gpt4 book ai didi

PowerShell:为什么真理包含谎言?

转载 作者:行者123 更新时间:2023-12-04 00:06:12 25 4
gpt4 key购买 nike

PS C:\> $true -contains "Lies"
True

……?
help about_operators

comparison operators include the containment operators (in, -notin, -contains, -notcontains), which determine whether a test value appears in a reference set.


$true不是一个集合,它怎么可能是一个“引用集”并包含......任何东西?它不包含虚假的东西。

同样 $null -in $null是真的

最佳答案

$true转换为 1 个元素的集合,因此等效于:

# ~> @($true) -contains "Lies"
True

因此,集合中的每个元素都会与“谎言”进行比较:
# ~> $true -eq "Lies"
True

所以真正的问题是,为什么上述表达式的计算结果为真。发生的事情是它正在将操作的右侧转换为匹配左侧的类型:
# ~> $true -eq [Bool]"Lies"
True

因为:
# ~> [Bool]"Lies"
True

所以如果你交换操作:
# ~> "Lies" -eq $true
False

因为:
# ~> [String]$true
True

同样, $null -in $null$null -in @($null) 相同和 $null -eq $null是真的。

关于PowerShell:为什么真理包含谎言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38002509/

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