Euphorie - Constantes

Les constantes sont également des variables qui reçoivent une valeur initiale qui ne peut jamais changer dans la vie du programme. Euphoria permet de définir des constantes en utilisant le mot-clé constant comme suit -

constant MAX = 100
constant Upper = MAX - 10, Lower = 5
constant name_list = {"Fred", "George", "Larry"}

Le résultat de toute expression peut être affecté à une constante, même celle impliquant des appels à des fonctions précédemment définies, mais une fois l'affectation effectuée, la valeur de la variable constante est "verrouillée".

Les constantes ne peuvent pas être déclarées dans un sous-programme. La portée d'unconstant 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é.

Exemples

#!/home/euphoria-4.0b2/bin/eui

constant MAX = 100
constant Upper = MAX - 10, Lower = 5

printf(1, "Value of MAX %d\n", MAX )
printf(1, "Value of Upper %d\n", Upper )
printf(1, "Value of Lower %d\n", Lower )

MAX = MAX + 1
printf(1, "Value of MAX %d\n", MAX )

Cela produit l'erreur suivante -

./test.ex:10
<0110>:: may not change the value of a constant
MAX = MAX + 1
   ^

Press Enter

Si vous supprimez les deux dernières lignes de l'exemple, cela produit le résultat suivant -

Value of MAX 100
Value of Upper 90
Value of Lower 5

Les énumérations

Une valeur énumérée est un type spécial de constante où la première valeur par défaut est le nombre 1 et chaque élément après cela est incrémenté de 1. Les énumérations ne peuvent prendre que des valeurs numériques.

Les énumérations ne peuvent pas être déclarées dans un sous-programme. La portée d'unenum 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é.

Exemples

#!/home/euphoria-4.0b2/bin/eui

enum ONE, TWO, THREE, FOUR

printf(1, "Value of ONE %d\n", ONE )
printf(1, "Value of TWO %d\n", TWO )
printf(1, "Value of THREE %d\n", THREE )
printf(1, "Value of FOUR %d\n", FOUR )

Cela produira le résultat suivant -

Value of ONE 1
Value of TWO 2
Value of THREE 3
Value of FOUR 4

Vous pouvez modifier la valeur de n'importe quel élément en lui attribuant une valeur numérique. Les valeurs suivantes sont toujours la valeur précédente plus un, sauf si une valeur par défaut leur est également affectée.

#!/home/euphoria-4.0b2/bin/eui

enum ONE, TWO, THREE, ABC=10, XYZ

printf(1, "Value of ONE %d\n", ONE )
printf(1, "Value of TWO %d\n", TWO )
printf(1, "Value of THREE %d\n", THREE )
printf(1, "Value of ABC %d\n", ABC )
printf(1, "Value of XYZ %d\n", XYZ )

Cela produit le résultat suivant -

Value of ONE 1
Value of TWO 2
Value of THREE 3
Value of ABC 10
Value of XYZ 11

Les séquences utilisent des indices entiers, mais avec enum, vous pouvez écrire du code comme celui-ci -

enum X, Y
sequence point = { 0,0 }

point[X] = 3
point[Y] = 4