这两个数组创建语句有区别吗?那么,'@' 符号在创建数组时是可选的吗?
$a = "This", "Is", "a", "cat"
$a.GetType()
$a | gm
$a = @("This", "Is", "a", "cat")
$a.GetType()
$a | gm
这两个数组创建语句有区别吗?那么,'@' 符号在创建数组时是可选的吗?
$a = "This", "Is", "a", "cat"
$a.GetType()
$a | gm
$a = @("This", "Is", "a", "cat")
$a.GetType()
$a | gm
$a = @() # declare an empty array.
$a = @(mysingleitem) # declare an array with a single element
在其他情况下是可选的。
这两个数组创建语句有区别吗?
虽然我不是 100% 确定(这取决于 PowerShell 的胆量),但差异可能如下:"This", "Is", "a", "cat"
创建一个数组。@("This", "Is", "a", "cat")
创建相同的数组,然后将运算符 @() 应用于它(在这种特殊情况下显然是冗余操作)。
例如,使用这个分析器,我们可以看到第二个表达式非常慢(14% 左右),所以我的猜测可能是正确的。理想情况下,PowerShell 代码解释器可以以相同的方式处理这两个表达式,但它可能不会。
另请参阅帮助主题(最后,关于运算符@()
和,
)
help about_operators