Euforia - Variáveis

As variáveis ​​nada mais são do que locais de memória reservados para armazenar valores. Isso significa que, ao criar uma variável, você reserva algum espaço na memória.

Com base no tipo de dado de uma variável, o interpretador aloca memória e decide o que pode ser armazenado na memória reservada. Portanto, ao atribuir diferentes tipos de dados às variáveis, você pode armazenar inteiros, decimais ou caracteres nessas variáveis. Os tipos de dados de euforia são explicados em diferentes capítulos.

Esses locais de memória são chamados de variáveis ​​porque seus valores podem ser alterados durante sua vida útil.

Declaração de Variável

As variáveis ​​de euforia devem ser declaradas explicitamente para reservar espaço de memória. Portanto, a declaração de uma variável é obrigatória antes de atribuir um valor a uma variável.

As declarações de variáveis ​​têm um nome de tipo seguido por uma lista das variáveis ​​que estão sendo declaradas. Por exemplo -

integer x, y, z

sequence a, b, x

Ao declarar uma variável, você nomeia a variável e define quais tipos de valores podem ser legalmente atribuídos à variável durante a execução de seu programa.

O simples ato de declarar uma variável não atribui nenhum valor a ela. Se você tentar lê-lo antes de atribuir qualquer valor a ele, o Euphoria emitirá um erro em tempo de execução, pois "a variável xyz nunca recebeu um valor" .

Atribuição de Valores

O sinal de igual (=) é usado para atribuir valores às variáveis. A variável pode ser atribuída da seguinte maneira -

Variable_Name = Variable_Value

Por exemplo -

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

Aqui 100, 1000,0 e "John" são os valores atribuídos às variáveis ​​de contador , milhas e nome , respectivamente. Este programa produz o seguinte resultado -

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

Para evitar o esquecimento de inicializar uma variável, e também porque pode tornar o código mais claro de ler, você pode combinar declaração e atribuição -

integer n = 5

Isso é equivalente ao seguinte -

integer n
n = 5

Escopo do Identificador

O escopo de um identificador é uma descrição de qual código pode acessá-lo. O código no mesmo escopo de um identificador pode acessar esse identificador e o código que não está no mesmo escopo que o identificador não pode acessá-lo.

O escopo de uma variável depende de onde e como ela é declarada.

  • Se for declarado dentro de um for, while, loop ou switch, seu escopo inicia na declaração e termina no respectivo end declaração.

  • Em um if declaração, o escopo começa na declaração e termina na próxima else, elsif ou end if declaração.

  • Se uma variável for declarada dentro de uma rotina, o escopo da variável começa na declaração e termina na instrução final da rotina. Isso é conhecido como uma variável privada.

  • Se uma variável é declarada fora de uma rotina, seu escopo começa na declaração e termina e no final do arquivo em que é declarada. Isso é conhecido como uma variável de módulo.

  • O escopo de um constant que não tem um modificador de escopo, começa na declaração e termina e no final do arquivo em que é declarado.

  • O escopo de um enum que não tem um modificador de escopo, começa na declaração e termina e no final do arquivo em que é declarado.

  • O escopo de todos procedures, functions e types, que não têm um modificador de escopo, começa no início do arquivo de origem e termina no final do arquivo de origem em que foram declarados.

Constantes, enums, variáveis ​​de módulo, procedimentos, funções e tipos, que não têm um modificador de escopo, são chamados de locals. No entanto, esses identificadores podem ter um modificador de escopo precedendo sua declaração, o que faz com que seu escopo se estenda além do arquivo em que foram declarados.

  • Se a palavra-chave globalprecede a declaração, o escopo desses identificadores se estende a todo o aplicativo. Eles podem ser acessados ​​por código em qualquer lugar nos arquivos do aplicativo.

  • Se a palavra-chave publicprecede a declaração, o escopo se estende a qualquer arquivo que inclua explicitamente o arquivo no qual o identificador é declarado ou a qualquer arquivo que inclua um arquivo que, por sua vez, public inclui o arquivo que contém a declaração pública .

  • Se a palavra-chave export precede a declaração, o escopo se estende apenas a qualquer arquivo que inclua diretamente o arquivo no qual o identificador foi declarado.

Quando você includeum arquivo Euphoria em outro arquivo, apenas os identificadores declarados usando um modificador de escopo são acessíveis ao arquivo que está fazendo a inclusão . As outras declarações no arquivo incluído são invisíveis para o arquivo que está fazendo a inclusão .