You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中Null数组的定义、声明及@($null)的判定疑问

PowerShell中的Null数组相关问题

一、可被视为Null数组的情况

在PowerShell里,真正的Null数组指的是变量本身的值为$null的数组类型变量——也就是该变量未引用任何数组对象,本质是变量为$null,而非数组内容包含$null。

另外有一种容易混淆的是空数组(元素个数为0的数组),它不是$null,但有时会被误称为"Null数组",严格来说空数组是独立的概念。

二、如何声明Null数组

直接将变量赋值为$null即可:

$nullArray = $null

此时用$null -eq $nullArray会返回$true,说明变量本身是$null。

如果需要声明空数组(元素数为0),使用:

$emptyArray = @()

空数组的Count属性为0,它不是$null,但表示没有任何元素。

三、@($null)不是Null数组的原因

你定义的$array = @($null),本质是创建了一个包含单个$null元素的数组对象,而非数组本身为$null:

  • 这个数组是真实存在的对象,执行$array.Count会返回1,证明它包含一个元素。
  • 当用$null -eq $array比较时,PowerShell检查的是数组变量本身是否为$null,由于该变量引用了一个数组对象,所以返回$false,不会输出指定内容。

如果要判断数组中是否包含$null元素,可以用:

if ($array -contains $null) {
    'Array contains $null element'
}

如果要判断是否是空数组,可检查元素个数:

if ($array.Count -eq 0) {
    'Array is empty'
}

内容的提问来源于stack exchange,提问作者Sudipto Pramanik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 22:03:09