Euforia - Variables

Las variables no son más que ubicaciones de memoria reservadas para almacenar valores. Esto significa que cuando crea una variable, reserva algo de espacio en la memoria.

Según el tipo de datos de una variable, el intérprete asigna memoria y decide qué se puede almacenar en la memoria reservada. Por lo tanto, al asignar diferentes tipos de datos a las variables, puede almacenar números enteros, decimales o caracteres en estas variables. Los tipos de datos de Euphoria se explican en diferentes capítulos.

Estas ubicaciones de memoria se denominan variables porque su valor se puede cambiar durante su vida útil.

Declaración de variable

Las variables Euphoria deben declararse explícitamente para reservar espacio en la memoria. Por lo tanto, la declaración de una variable es obligatoria antes de asignar un valor a una variable.

Las declaraciones de variables tienen un nombre de tipo seguido de una lista de las variables que se declaran. Por ejemplo

integer x, y, z

sequence a, b, x

Cuando declara una variable, nombra la variable y define qué tipo de valores pueden asignarse legalmente a la variable durante la ejecución de su programa.

El simple hecho de declarar una variable no le asigna ningún valor. Si intenta leerlo antes de asignarle cualquier valor, Euphoria emitirá un error en tiempo de ejecución ya que "la variable xyz nunca ha recibido un valor" .

Asignar valores

El signo igual (=) se utiliza para asignar valores a las variables. La variable se puede asignar de la siguiente manera:

Variable_Name = Variable_Value

Por ejemplo

#!/home/euphoria/bin/eui

-- Here is the declaration of the variables.
integer counter
integer miles
sequence name

counter = 100 -- An integer assignment
miles = 1000.0 -- A floating point
name = "John" -- A string ( sequence )

printf(1, "Value of counter %d\n", counter )
printf(1, "Value of miles %f\n", miles )
printf(1, "Value of name %s\n", {name} )

Aquí 100, 1000.0 y "John" son los valores asignados a las variables de contador , millas y nombre , respectivamente. Este programa produce el siguiente resultado:

Value of counter 100
Value of miles 1000.000000
Value of name John

Para evitar que se olvide de inicializar una variable, y también porque puede hacer que el código sea más claro de leer, puede combinar declaración y asignación:

integer n = 5

Esto es equivalente a lo siguiente:

integer n
n = 5

Alcance del identificador

El alcance de un identificador es una descripción de qué código puede acceder a él. El código en el mismo alcance de un identificador puede acceder a ese identificador y el código que no está en el mismo alcance que el identificador no puede acceder a él.

El alcance de una variable depende de dónde y cómo se declara.

  • Si se declara dentro de un for, while, loop o switch, su alcance comienza en la declaración y termina en el respectivo end declaración.

  • En un if declaración, el alcance comienza en la declaración y termina en la siguiente else, elsif o end if declaración.

  • Si se declara una variable dentro de una rutina, el alcance de la variable comienza en la declaración y termina en la declaración final de la rutina. Esto se conoce como variable privada.

  • Si una variable se declara fuera de una rutina, su alcance comienza en la declaración y termina y al final del archivo en el que se declara. Esto se conoce como variable de módulo.

  • El alcance de un constant que no tiene un modificador de alcance, comienza en la declaración y termina y al final del archivo en el que se declara.

  • El alcance de un enum que no tiene un modificador de alcance, comienza en la declaración y termina y al final del archivo en el que se declara.

  • El alcance de todos procedures, functions y types, que no tienen un modificador de alcance, comienza al principio del archivo fuente y termina al final del archivo fuente en el que están declarados.

Las constantes, enumeraciones, variables de módulo, procedimientos, funciones y tipos, que no tienen un modificador de alcance se denominan locals. Sin embargo, estos identificadores pueden tener un modificador de alcance antes de su declaración, lo que hace que su alcance se extienda más allá del archivo en el que están declarados.

  • Si la palabra clave globalprecede a la declaración, el alcance de estos identificadores se extiende a toda la aplicación. Se puede acceder a ellos mediante código en cualquier lugar de los archivos de la aplicación.

  • Si la palabra clave publicprecede a la declaración, el alcance se extiende a cualquier archivo que incluya explícitamente el archivo en el que se declara el identificador, oa cualquier archivo que incluya un archivo que a su vez público incluya el archivo que contiene la declaración pública .

  • Si la palabra clave export precede a la declaración, el alcance solo se extiende a cualquier archivo que incluya directamente el archivo en el que se declara el identificador.

Cuando usted includeun archivo Euphoria en otro archivo, solo los identificadores declarados usando un modificador de alcance son accesibles para el archivo que realiza la inclusión . Las otras declaraciones en el archivo incluido son invisibles para el archivo que realiza la inclusión .