Euforia - Variabili

Le variabili non sono altro che posizioni di memoria riservate per memorizzare i valori. Ciò significa che quando crei una variabile, riservi dello spazio in memoria.

In base al tipo di dati di una variabile, l'interprete alloca la memoria e decide cosa può essere memorizzato nella memoria riservata. Pertanto, assegnando diversi tipi di dati alle variabili, è possibile memorizzare numeri interi, decimali o caratteri in queste variabili. I tipi di dati Euphoria sono spiegati in diversi capitoli.

Queste posizioni di memoria sono chiamate variabili perché il loro valore può essere modificato durante la loro vita.

Dichiarazione di variabili

Le variabili Euphoria devono essere dichiarate esplicitamente per riservare spazio di memoria. Pertanto la dichiarazione di una variabile è obbligatoria prima di assegnare un valore a una variabile.

Le dichiarazioni di variabili hanno un nome di tipo seguito da un elenco delle variabili dichiarate. Ad esempio:

integer x, y, z

sequence a, b, x

Quando si dichiara una variabile, si nomina la variabile e si definisce quale tipo di valori può essere legalmente assegnato alla variabile durante l'esecuzione del programma.

Il semplice atto di dichiarare una variabile non le assegna alcun valore. Se si tenta di leggerlo prima di assegnarle un valore, Euphoria emetterà un errore di runtime poiché "alla variabile xyz non è mai stato assegnato un valore" .

Assegnazione di valori

Il segno di uguale (=) viene utilizzato per assegnare valori alle variabili. La variabile può essere assegnata nel modo seguente:

Variable_Name = Variable_Value

Ad esempio:

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

Qui 100, 1000.0 e "John" sono i valori assegnati rispettivamente alle variabili counter , miles e name . Questo programma produce il seguente risultato:

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

Per evitare di dimenticare di inizializzare una variabile, e anche perché potrebbe rendere il codice più chiaro da leggere, puoi combinare dichiarazione e assegnazione -

integer n = 5

Questo è equivalente al seguente:

integer n
n = 5

Ambito dell'identificatore

L'ambito di un identificatore è una descrizione di quale codice può accedervi. Il codice nello stesso ambito di un identificatore può accedere a tale identificatore e il codice non nello stesso ambito dell'identificatore non può accedervi.

L'ambito di una variabile dipende da dove e come viene dichiarata.

  • Se è dichiarato all'interno di un file for, while, loop o switch, il suo campo di applicazione inizia alla dichiarazione e termina al rispettivo end dichiarazione.

  • In un file if dichiarazione, l'ambito inizia alla dichiarazione e termina alla successiva else, elsif o end if dichiarazione.

  • Se una variabile viene dichiarata all'interno di una routine, l'ambito della variabile inizia alla dichiarazione e termina all'istruzione end della routine. Questa è nota come variabile privata.

  • Se una variabile viene dichiarata al di fuori di una routine, il suo ambito inizia dalla dichiarazione e termina e alla fine del file in cui è dichiarata. Questa è nota come variabile di modulo.

  • Lo scopo di a constant che non ha un modificatore di ambito, inizia dalla dichiarazione e finisce e alla fine del file in cui è dichiarato.

  • Lo scopo di a enum che non ha un modificatore di ambito, inizia dalla dichiarazione e finisce e alla fine del file in cui è dichiarato.

  • Lo scopo di tutto procedures, functions e types, che non hanno un modificatore di ambito, inizia all'inizio del file di origine e termina alla fine del file di origine in cui sono dichiarati.

Costanti, enumerazioni, variabili di modulo, procedure, funzioni e tipi, che non hanno un modificatore di ambito, sono indicate come locals. Tuttavia, questi identificatori possono avere un modificatore di ambito prima della loro dichiarazione, il che fa sì che il loro ambito si estenda oltre il file in cui sono dichiarati.

  • Se la parola chiave globalprecede la dichiarazione, l'ambito di questi identificatori si estende all'intera applicazione. È possibile accedervi tramite codice in qualsiasi punto dei file dell'applicazione.

  • Se la parola chiave publicprecede la dichiarazione, l'ambito si estende a qualsiasi file che includa esplicitamente il file in cui è dichiarato l'identificatore, oa qualsiasi file che include un file che a sua volta public include il file contenente la dichiarazione pubblica .

  • Se la parola chiave export precede la dichiarazione, l'ambito si estende solo a qualsiasi file che include direttamente il file in cui è dichiarato l'identificatore.

Quando tu includeun file Euphoria in un altro file, solo gli identificatori dichiarati utilizzando un modificatore di ambito sono accessibili al file che esegue l' inclusione . Le altre dichiarazioni nel file incluso sono invisibili al file che esegue l' inclusione .