我这里有几行脚本供您查看,我注意到变量声明带有一个值:
function readConfig {
Param([string]$fileName)
$config = @{}
Get-Content $fileName | Where-Object {
$_ -like '*=*'
} | ForEach-Object {
$key, $value = $_ -split '\s*=\s*', 2
$config[$key] = $value
}
return $config
}
我想知道
@{}
在$config = @{}
中意味着什么? 最佳答案
PowerShell中的@{}
定义了一个哈希表,这是一种用于将唯一键映射到值的数据结构(在其他语言中,此数据结构称为“字典”或“关联数组”)。@{}
自己定义了一个空的哈希表,然后可以用值填充该哈希表,例如像这样:
$h = @{}
$h['a'] = 'foo'
$h['b'] = 'bar'
还可以使用已经存在的内容来定义哈希表:
$h = @{
'a' = 'foo'
'b' = 'bar'
}
但是请注意,当您在PowerShell输出中看到类似的符号时,例如像这样:
abc:23
def:@ {“a” =“foo”;“b” =“bar”}
通常不是哈希表,而是自定义对象的字符串表示形式。