Portée

La portée de la programmation est l'espace dans le code où une variable est à la fois définie et visible. Scope différencie les régions d'un programme et la façon dont le programme définit et utilise les variables. Si une variable a une définition spécifique dans tout le programme, quelle que soit la fonction dans laquelle elle apparaît, sa portée est globale. Les variables globales sont les mêmes dans tout le code source. En revanche, la portée locale définit une variable pour une fonction particulière; il n'existe que dans cette fonction.

La définition de la portée est un peu trompeuse; il fait également référence à la manière dont une variable fonctionne dans un programme, et pas seulement à la zone dans laquelle la variable est définissable et visible. Le terme champ d'application indique uniquement le domaine couvert et non l'action effectuée; les chercheurs et les développeurs comprennent les limites du terme et comprennent que la portée signifie à la fois la définition et le comportement d'une variable.


Scope statique vs dynamique

Les portées statique (lexicale) et dynamique sont deux types de portées qui se produisent dans la programmation; la statique est de loin la plus courante. Si un programme a une portée statique ou lexicale, une variable dans une fonction renverra sa valeur assignée pour cette étendue chaque fois que cette fonction s'exécute. Par exemple, si une variable x = 5 dans une fonction donnée, et une définition conditionnelle ultérieure pour x est également fournie, x = 5 partout où la portée du programme le définit comme tel.

La portée dynamique, cependant, appelle la définition la plus récente de cette variable, quelle que soit la structure du programme. Dans l'exemple ci-dessus, si x = 5 mais que x a ensuite été défini avec une valeur de 10, un programme avec une portée dynamique appellerait x = 10 si cette valeur avait été utilisée le plus récemment. La portée dynamique est moins structurée que la portée statique; il extrait les définitions de variables de la pile d'appels au lieu de la zone dans laquelle elles seraient définies logiquement.

Laisser un commentaire