Copyright © tutorialspoint.com

Euphoria - Constants

previous next


Advertisements

Variables are nothing but reserved memory locations to store values. This means that when you create a variable you reserve some space in memory.

Constants are also variables that are assigned an initial value that can never change. Euphoria allows to define constants using constant keyword as follows:

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

The result of any expression can be assigned to a constant, even one involving calls to previously defined functions, but once the assignment is made, the value of the constant variable is "locked in".

Constants may not be declared inside a subroutine. The scope of a constant that does not have a scope modifier, starts at the declaration and ends and the end of the file it is declared in.

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 )

This will produce following error:

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

Press Enter

If you delete last two lines from the example, then it would produce following result:

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

The enums:

An enumerated value is a special type of constant where the first value defaults to the number 1 and each item after that is incremented by 1. Enums can only take numeric values.

Enums may not be declared inside a subroutine. The scope of a enum that does not have a scope modifier, starts at the declaration and ends and the end of the file it is declared in.

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 )

This will produce following result:

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

You can change the value of any one item by assigning it a numeric value. Subsequent values are always the previous value plus one, unless they too are assigned a default value.

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

This will produce following result:

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

Euphoria sequences use integer indexes, but with enum you may write code like this:

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

previous next

Copyright © tutorialspoint.com