好奇,这背后的想法是什么:
@() -as [bool]
# False
@($null) -as [bool]
# False
@($null, $null) -as [bool]
# True
我希望False / True / True或False / False / False,但不是False / False / True。
答案 0 :(得分:7)
如Powershell快速参考文献中所述:
True False ~~~~ ~~~~~ $TRUE $FALSE Any string of length > 0, except the word “false” Empty string or the string “false” Any number ≠ 0 Any number = 0 Array of length > 1 Array of length 0 Array of length 1 whose element is true Array of length 1 whose element is false A reference to any object Null
我认为它背后的想法是,如果将cmdlet / function的输出放入数组中,则很容易发生只包含一个元素$false
的数组。您可能期望更多值,但有些错误使其返回$false
,但在这种情况下,数组中$false
两次可能不太可能。
或许我们应该等待Jeffrey Snover在这里回答: - )
我机器上的¹C:\ Windows \ System32 \ WindowsPowerShell \ v1.0 \ Documents \ en-US \ QuadFold.rtf