PowerShell の about_Comparison_Operators のヘルプ セクションを見ると、次のことがわかります。
PS C:\> $false,$false -eq $true
PS C:\>
左から右に一致するものはないため、 . でさえも何も返されません$null
。
私はこれを理解していません:
PS C:\> $true -eq $false,$false
True
PS C:\>
それは最初にFalse$true -eq $false
を返すものを実行し、次にそのFalseを取り、Trueを返すものを実行しているためですか?$false -eq $false
より詳しい情報
以下が false を返す理由は、文字列を配列と比較しているためですよね? 文字列は配列と等しくありません。
PS C:\> "abc" -eq "abc","def"
False
答え?
さらに掘り下げる$true
と、オブジェクトに等しいことが示されます。
PS C:\> $true -eq [array]
True
PS C:\> $true -eq [string]
True
PS C:\> $true -eq [int]
True
PS C:\> $true -eq [bool]
True
重要なのは、それらのオブジェクトの値です。
PS C:\> $true -eq [int]0
False