70 votes

Portée variable dans PowerShell

Une chose triste à propos de PowerShell est que la fonction et les scriptblocks sont étendus de manière dynamique.

Mais il y a une autre chose qui m'a surpris, c'est que les variables se comportent comme une copie sur écriture dans une portée interne.

 $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

Ce qui rend la portée dynamique un peu moins douloureuse. Mais comment éviter la copie sur écriture ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X