Euphoria - 常量



常量也是在程式生命期內永遠不能更改的初始值分配的變數。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 X, Y
sequence point = { 0,0 }

point[X] = 3
point[Y] = 4
廣告
© . All rights reserved.