Bash
La portée
Recherche…
Portée dynamique en action
La portée dynamique signifie que les recherches de variables ont lieu dans la portée où une fonction est appelée , et non là où elle est définie .
$ x=3
$ func1 () { echo "in func1: $x"; }
$ func2 () { local x=9; func1; }
$ func2
in func1: 9
$ func1
in func1: 3
Dans un langage de portée lexicale, func1
recherche toujours la valeur de x
dans la portée globale, car func1
est défini dans la portée locale.
Dans un langage à portée dynamique, func1
regarde dans la portée où il est appelé . Lorsqu'il est appelé depuis func2
, il cherche d'abord dans le corps de func2
une valeur de x
. Si elle n'y était pas définie, elle se situerait dans la portée globale, où func2
était appelé.
Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow