我这里有几行脚本供您查看,我注意到变量声明带有一个值:

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”}

通常不是哈希表,而是自定义对象的字符串表示形式。

10-07 13:02
查看更多