Euphoria常量

變量是什麼,但保留記憶體來儲存值。這意味着,當你創建一個變量在內存中保留一些空間。

常量也將被分配一個初始值,永遠無法改變的變量。Euphoria 允許定義常量使用 constant 關鍵字如下:

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

Euphoria 序列使用整數索引,但用枚舉,可能會寫這樣的代碼:

enum X, Y
sequence point = { 0,0 }
point[X] = 3
point[Y] = 4