Erlang - Variabili

In Erlang, tutte le variabili sono legate con l'istruzione "=". Tutte le variabili devono iniziare con il carattere maiuscolo. In altri linguaggi di programmazione, il segno "=" viene utilizzato per l'assegnazione, ma non nel caso di Erlang. Come affermato, le variabili vengono definite con l'uso dell'istruzione "=".

Una cosa fondamentale da notare in Erlang è che le variabili sono immutabili, il che significa che affinché il valore della variabile cambi, deve essere distrutto e ricreato di nuovo.

Le seguenti variabili di base in Erlang sono spiegate nell'ultimo capitolo:

  • Numbers- Viene utilizzato per rappresentare un numero intero o un float. Un esempio è 10.

  • Boolean - Questo rappresenta un valore booleano che può essere vero o falso.

  • Bit String- Una stringa di bit viene utilizzata per memorizzare un'area di memoria non digitata. Un esempio è << 40,50 >>.

  • Tuple- Una tupla è un tipo di dati composto con un numero fisso di termini. Un esempio è {40,50}.

  • Map- Una mappa è un tipo di dati composto con un numero variabile di associazioni valore-chiave. Ogni associazione valore-chiave nella mappa è chiamata coppia di associazioni. Un esempio è {type => person, age => 25}.

  • List- Un elenco è un tipo di dati composto con un numero variabile di termini. Un esempio è [40,40].

Dichiarazioni di variabili

La sintassi generale per definire una variabile è la seguente:

Sintassi

var-name = var-value

Dove,

  • var-name - Questo è il nome della variabile.

  • var-value - Questo è il valore associato alla variabile.

Di seguito è riportato un esempio di dichiarazione di variabile:

Esempio

-module(helloworld). 
-export([start/0]). 

start() -> 
   X = 40, 
   Y = 50, 
   Result = X + Y, 
   io:fwrite("~w",[Result]).

Nell'esempio precedente, abbiamo 2 variabili, una è X che è legata al valore 40 e la successiva è Y che è legata al valore di 50. Un'altra variabile chiamata Risultato è vincolata alla somma di X e Y.

L'output del programma di cui sopra sarà:

Produzione

90

Denominazione delle variabili

Come discusso, i nomi delle variabili devono iniziare con le maiuscole. Facciamo un esempio di una variabile dichiarata in minuscolo.

Esempio

-module(helloworld). 
-export([start/0]). 

start() -> 
   X = 40, 
   Y = 50, 
   result = X + Y, 
   io:fwrite("~w",[Result]).

Se provi a compilare il programma sopra, otterrai il seguente errore in fase di compilazione.

Produzione

helloworld.erl:8: variable 'Result' is unbound

In secondo luogo, tutte le variabili possono essere assegnate solo una volta. Facciamo un esempio di assegnazione di una variabile più di una volta.

Esempio

-module(helloworld). 
-export([start/0]). 

start() -> 
   X = 40, 
   Y = 50, 
   X = 60, 
   io:fwrite("~w",[X]).

Se si tenta di compilare il programma precedente, verrà visualizzato il seguente errore in fase di compilazione.

Produzione

helloworld.erl:6: Warning: variable 'Y' is unused
helloworld.erl:7: Warning: no clause will ever match
helloworld.erl:7: Warning: the guard for this clause evaluates to 'false'

Variabili di stampa

In questa sezione discuteremo come utilizzare le varie funzioni di stampa delle variabili.

Utilizzo della funzione io: fwrite

Avresti visto questo (io: fwrite) usato in tutti i programmi sopra. Ilfwrite funzione fa parte del modulo 'io' o Erlang, che può essere utilizzato per visualizzare il valore delle variabili nel programma.

L'esempio seguente mostra alcuni altri parametri che possono essere utilizzati con l'istruzione fwrite.

Esempio

-module(helloworld). 
-export([start/0]). 

start() -> 
   X = 40.00, 
   Y = 50.00, 
   io:fwrite("~f~n",[X]), 
   io:fwrite("~e",[Y]).

L'output del programma di cui sopra sarà:

Produzione

40.000000
5.00000e+1

I seguenti suggerimenti dovrebbero essere annotati sul programma sopra.

  • ~ - Questo carattere simboleggia che è necessario eseguire una formattazione per l'output.

  • ~f- L'argomento è un float scritto come [-] ddd.ddd, dove la precisione è il numero di cifre dopo il punto decimale. La precisione predefinita è 6 e non può essere inferiore a 1.

  • ~n - Questo è per println su una nuova riga.

  • ~e- L'argomento è un float scritto come [-] d.ddde + -ddd, dove la precisione è il numero di cifre scritte. La precisione predefinita è 6 e non può essere inferiore a 2.