Euphorie - Variables

Les variables ne sont rien d'autre que des emplacements de mémoire réservés pour stocker des valeurs. Cela signifie que lorsque vous créez une variable, vous réservez de l'espace en mémoire.

En fonction du type de données d'une variable, l'interpréteur alloue de la mémoire et décide de ce qui peut être stocké dans la mémoire réservée. Par conséquent, en attribuant différents types de données aux variables, vous pouvez stocker des entiers, des décimales ou des caractères dans ces variables. Les types de données Euphoria sont expliqués dans différents chapitres.

Ces emplacements mémoire sont appelés variables car leur valeur peut être modifiée au cours de leur durée de vie.

Déclaration de variable

Les variables Euphoria doivent être explicitement déclarées pour réserver de l'espace mémoire. Ainsi, la déclaration d'une variable est obligatoire avant d'attribuer une valeur à une variable.

Les déclarations de variables ont un nom de type suivi d'une liste des variables déclarées. Par exemple -

integer x, y, z

sequence a, b, x

Lorsque vous déclarez une variable, vous nommez la variable et vous définissez quelle sorte de valeurs peut légalement être attribuée à la variable lors de l'exécution de votre programme.

Le simple fait de déclarer une variable ne lui attribue aucune valeur. Si vous essayez de le lire avant de lui attribuer une valeur, Euphoria émettra une erreur d'exécution car "la variable xyz n'a jamais reçu de valeur" .

Attribution de valeurs

Le signe égal (=) est utilisé pour attribuer des valeurs aux variables. La variable peut être affectée de la manière suivante -

Variable_Name = Variable_Value

Par exemple -

#!/home/euphoria/bin/eui

-- Here is the declaration of the variables.
integer counter
integer miles
sequence name

counter = 100 -- An integer assignment
miles = 1000.0 -- A floating point
name = "John" -- A string ( sequence )

printf(1, "Value of counter %d\n", counter )
printf(1, "Value of miles %f\n", miles )
printf(1, "Value of name %s\n", {name} )

Ici, 100, 1000,0 et "John" sont les valeurs attribuées respectivement aux variables compteur , miles et nom . Ce programme produit le résultat suivant -

Value of counter 100
Value of miles 1000.000000
Value of name John

Pour éviter d'oublier d'initialiser une variable, et aussi parce que cela peut rendre le code plus clair à lire, vous pouvez combiner déclaration et affectation -

integer n = 5

C'est équivalent à ce qui suit -

integer n
n = 5

Portée de l'identifiant

La portée d'un identifiant est une description du code qui peut y accéder. Le code dans la même portée d'un identifiant peut accéder à cet identifiant et le code pas dans la même portée que l'identifiant ne peut pas y accéder.

La portée d'une variable dépend de l'endroit et de la manière dont elle est déclarée.

  • S'il est déclaré dans un for, while, loop ou switch, sa portée commence à la déclaration et se termine à la end déclaration.

  • Dans un if , la portée commence à la déclaration et se termine soit à la suivante else, elsif ou end if déclaration.

  • Si une variable est déclarée dans une routine, la portée de la variable commence à la déclaration et se termine à l'instruction de fin de la routine. Ceci est connu comme une variable privée.

  • Si une variable est déclarée en dehors d'une routine, sa portée commence à la déclaration et se termine et à la fin du fichier dans lequel elle est déclarée. C'est ce qu'on appelle une variable de module.

  • La portée d'un constant qui n'a pas de modificateur de portée, commence à la déclaration et se termine et à la fin du fichier dans lequel il est déclaré.

  • La portée d'un enum qui n'a pas de modificateur de portée, commence à la déclaration et se termine et à la fin du fichier dans lequel il est déclaré.

  • La portée de tous procedures, functions et types, qui n'ont pas de modificateur de portée, commence au début du fichier source et se termine à la fin du fichier source dans lequel ils sont déclarés.

Les constantes, énumérations, variables de module, procédures, fonctions et types, qui n'ont pas de modificateur de portée sont appelés locals. Cependant, ces identificateurs peuvent avoir un modificateur de portée précédant leur déclaration, ce qui fait que leur portée s'étend au-delà du fichier dans lequel ils sont déclarés.

  • Si le mot-clé globalprécède la déclaration, la portée de ces identifiants s'étend à l'ensemble de l'application. Ils sont accessibles par code n'importe où dans les fichiers d'application.

  • Si le mot-clé publicprécède la déclaration, la portée s'étend à tout fichier qui inclut explicitement le fichier dans lequel l'identificateur est déclaré, ou à tout fichier qui comprend un fichier qui à son tour public inclut le fichier contenant la déclaration publique .

  • Si le mot-clé export précède la déclaration, la portée ne s'étend qu'à tout fichier qui inclut directement le fichier dans lequel l'identifiant est déclaré.

Quand vous includeun fichier Euphoria dans un autre fichier, seuls les identifiants déclarés à l'aide d'un modificateur de portée sont accessibles au fichier effectuant l' inclusion . Les autres déclarations du fichier inclus sont invisibles pour le fichier effectuant l' inclusion .