Variable de portée en PowerShell

Une chose triste, PowerShell, c'est que la fonction et scriptblocks dynamique étendue.

Mais il y a autre chose qui m'a surpris est que les variables se comportent comme une copie sur écriture à l'intérieur d'un intérieur de la portée.

$array=@("g")
function foo()
{
    $array += "h"
    Write-Host $array
}

& {
    $array +="s"
    Write-Host $array
}
foo

Write-Host $array

La sortie est:

g s
g h
g

Qui rend la dynamique de cadrage un peu moins douloureux. Mais comment puis-je éviter la copie sur écriture?

InformationsquelleAutor mathk | 2012-02-17