小编Vin*_*ent的帖子

PowerShell 空数组初始化在条件变量赋值中失败

在这篇关于如何在 PowerShell 中最好地创建(三元运算符)表达式的文章之后,我尝试将其转换:

if ($condition)
{ 
   $accessList = @() 
}
else
{
    $accessList = $accessControl.AllowedItems
}
Run Code Online (Sandbox Code Playgroud)

进入这个:

$accessList = if ($condition) { @() } else { $accessControl.AllowedItems }
Run Code Online (Sandbox Code Playgroud)

单行代码无法初始化空数组。结果$accessList没有任何数组属性/方法并$NULL -eq $accessList返回True。这个版本也不起作用:

$accessList = $(if ($condition) { @() } else { $accessControl.AllowedItems })
Run Code Online (Sandbox Code Playgroud)

奇怪的是,如果我尝试初始化一个非空数组,单行代码就会起作用。它可能与变量评估和管道的工作原理有关,但在谷歌搜索了一下之后,我发现没有对这种特殊情况的详细解释。请帮助理解其背后的机制。

arrays powershell

1
推荐指数
1
解决办法
539
查看次数

标签 统计

arrays ×1

powershell ×1