Erlang Language atomi


Esempio

Un atomo è un oggetto con un nome identificato solo dal nome stesso.

Gli atomi sono definiti in Erlang usando letterali atomici che sono entrambi

  • una stringa non quotata che inizia con una lettera minuscola e contiene solo lettere, cifre, caratteri di sottolineatura o il carattere @ , oppure
  • Una singola stringa quotata

Esempi

1> hello.
hello

2> hello_world.
hello_world

3> world_Hello@.
world_Hello@

4> '1234'.     
'1234'

5> '!@#$%% ä'.
'!@#$%% ä'

Atomi che sono usati nella maggior parte dei programmi di Erlang

Ci sono alcuni atomi che appaiono in quasi tutti i programmi di Erlang, in particolare a causa del loro uso nella libreria standard.

  • true e false sono gli abituati a denotare i rispettivi valori booleani
  • ok è usato solitamente come valore di ritorno di una funzione chiamata solo per il suo effetto, o come parte di un valore di ritorno, in entrambi i casi per indicare un'esecuzione corretta
  • Allo stesso modo error è usato per indicare una condizione di errore che non garantisce un ritorno anticipato alle funzioni superiori
  • undefined viene in genere utilizzato come segnaposto per un valore non specificato

Usa come tag

ok e error sono abbastanza spesso usati come parte di una tupla, in cui il primo elemento della tupla segnala il successo mentre altri elementi contengono il valore di ritorno effettivo o la condizione di errore:

func(Input) ->
    case Input of
        magic_value ->
            {ok, got_it};
        _ ->
            {error, wrong_one}
    end.

{ok, _} = func(SomeValue).

Conservazione

Una cosa da tenere a mente quando si usano gli atomi è che sono memorizzati nella loro tabella globale nella memoria e questa tabella non è raccolta, quindi creare dinamicamente gli atomi, in particolare quando un utente può influenzare il nome dell'atomo, è fortemente scoraggiato.