PowerShell功能:通过参考调用哈希?

时间:2014-06-25 10:00:20

标签: function powershell hash pass-by-reference

我有几个哈希值,一些函数应该可以使用它们。我想通过引用来调用这些哈希值(我是否需要):

$H1 = @{...}
$H2 = @{...}
$H3 = @{...}
...

function manage{ param( [ref]$a, [ref]$b, [ref]$c )
    ...
}

manage $H1 $H2 $H3

但这似乎不起作用。我该如何正确地做到这一点?

提前致谢

1 个答案:

答案 0 :(得分:2)

哈希在PowerShell中被视为引用类型,并且始终通过引用传递,因此不需要在此处的参数中使用[ref],请参阅about_Ref

尝试不使用[ref],或专门使用[hashtable]类型:

function manage {
    param (
        [hashtable] $a,
        [hashtable] $b,
        [hashtable] $c
    )
    ...
}

使用函数内的$a$b$c引用对哈希所做的更改将在底层哈希对象上完成,并且将在函数外部通过原始$H1$H2$H3引用。