gpt4 book ai didi

powershell - 测试集合是否为空

转载 作者:行者123 更新时间:2023-12-03 14:36:58 25 4
gpt4 key购买 nike

为什么,当我测试 null 的集合时并将集合作为第一个参数,如果不是 null 则返回集合,如果是 null它返回 null .

我意识到如果我将它转换为 [bool] ,它解决了问题。但我以为-eq将输出 Bool不需要 Actor 的值(value)?

$objectArray = @('a','b','c','d')

$objectArray -ne $null
<#
a
b
c
d
#>

[bool]($objectArray -ne $null)
#True

$objectArray -eq $null
#Nothing is outputted

[bool]($objectArray -eq $null)
#False

$null -ne $objectArray
#True

$null -eq $objectArray
#False

当我测试一个普通字符串时,我得到了如下所示的预期结果:
$object = 'a'

$object -ne $null
#True

$object -eq $null
#False

$null -ne $object
#True

$null -eq $object
#False

最佳答案

它不会“如果集合不为空则返回集合”,它返回集合中不为空的项目。任何为空的都将被过滤掉(但没有任何,所以它不会改变) . 应用于数组的二元运算符充当过滤器。

'a','b','c' -eq 'b'       #output is 'b'

1,2,3,4,5 -lt 3 #output is 1,2

1,2,$null,4,5 -ne $null # output is 1,2,4,5

1,2,$null,4,5 -eq $null # output is $null

您的代码:
[bool]($objectArray -ne $null)
#True
#filters the array, returns some values
#arrays with some things in them cast to true

$objectArray -eq $null
#Nothing is outputted
# nothing in the array was null, no output.

[bool]($objectArray -eq $null)
#False
# filters the array, empty arrays cast to false

When the input to an operator is a scalar value, comparison operators return a Boolean value. When the input is a collection of values, the comparison operators return any matching values. If there are no matches in a collection, comparison operators do not return anything.

The exceptions are the containment operators (-Contains, -NotContains), the In operators (-In, -NotIn), and the type operators (-Is, -IsNot), which always return a Boolean value.


  • get-help about_comparison_operators (确实更完整、准确和有用)
  • 关于powershell - 测试集合是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40392439/

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