Учебники

Эйфория — Константы

Константы также являются переменными, которым присваивается начальное значение, которое никогда не может измениться в жизни программы. Euphoria позволяет определять константы, используя ключевое слово константы следующим образом:

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

Результат любого выражения может быть присвоен константе, даже той, которая включает вызовы ранее определенных функций, но после того, как присвоение выполнено, значение константной переменной «заблокировано».

Константы не могут быть объявлены внутри подпрограммы. Область действия константы , которая не имеет модификатора области, начинается с объявления и заканчивается и заканчивается в файле, в котором она объявлена.

Примеры

#!/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 )

Это приводит к следующей ошибке —

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

Press Enter

Если вы удалите две последние строки из примера, то это даст следующий результат —

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

Перечисления

Перечисляемое значение — это особый тип константы, в котором первое значение по умолчанию равно номеру 1, а каждый элемент увеличивается на 1. Перечисления могут принимать только числовые значения.

Перечисления не могут быть объявлены внутри подпрограммы. Область действия перечисления , у которого нет модификатора области, начинается с объявления и заканчивается и заканчивается в файле, в котором оно объявлено.

Примеры

#!/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 )

Это даст следующий результат —

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

Вы можете изменить значение любого элемента, присвоив ему числовое значение. Последующие значения всегда являются предыдущим значением плюс один, если только им тоже не назначено значение по умолчанию.

#!/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 )

Это дает следующий результат —

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

Последовательности используют целочисленные индексы, но с помощью enum вы можете написать такой код: