Euphoria常量 - 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