常量
优质
小牛编辑
129浏览
2023-12-01
常量也是赋予初始值的变量,该值在程序的生命周期中永远不会改变。 Euphoria允许使用常量关键字定义常量,如下所示 -
constant MAX = 100
constant Upper = MAX - 10, Lower = 5
constant name_list = {"Fred", "George", "Larry"}
任何表达式的结果都可以赋值给常量,甚至包括对先前定义的函数的调用,但是一旦赋值,常量变量的值就会被“锁定”。
常量可能不会在子例程中声明。 没有范围修饰符的constant的范围从声明和结尾开始,并在声明它的文件的末尾开始。
例子 (Examples)
#!/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
enums
枚举值是一种特殊类型的常量,其中第一个值默认为数字1,之后的每个项目增加1.枚举只能采用数值。
枚举不能在子例程中声明。 没有范围修饰符的enum的范围从声明和结尾开始,并在声明它的文件的末尾开始。
例子 (Examples)
#!/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
您可以通过为其指定数值来更改任何一个项目的值。 后续值始终是先前值加1,除非它们也分配了默认值。
#!/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