Erlang - File di intestazione

I file di intestazione sono come i file di inclusione in qualsiasi altro linguaggio di programmazione. È utile per suddividere i moduli in file diversi e quindi accedere a questi file di intestazione in programmi separati. Per vedere i file di intestazione in azione, diamo un'occhiata a uno dei nostri primi esempi di record.

Creiamo prima un file chiamato user.hrl e aggiungi il seguente codice -

-record(person, {name = "", id}).

Ora nel nostro file di programma principale, aggiungiamo il seguente codice:

Esempio

-module(helloworld). 
-export([start/0]). 
-include("user.hrl"). 

start() -> 
   P = #person{name = "John",id = 1}, 
   io:fwrite("~p~n",[P#person.id]), 
   io:fwrite("~p~n",[P#person.name]).

Come puoi vedere dal programma sopra, in realtà stiamo includendo solo il file user.hrl che inserisce automaticamente il file –record codice in esso.

Se esegui il programma precedente, otterrai il seguente output.

Produzione

1
“John”

Puoi anche fare la stessa cosa con le macro, puoi definire la macro all'interno del file di intestazione e referenziarla nel file principale. Vediamo un esempio di questo -

Creiamo prima un file chiamato user.hrl e aggiungi il seguente codice -

-define(macro1(X,Y),{X+Y}).

Ora nel nostro file di programma principale, aggiungiamo il seguente codice:

Esempio

-module(helloworld). 
-export([start/0]). 
-include("user.hrl"). 

start() -> 
   io:fwrite("~w",[?macro1(1,2)]).

Se esegui il programma sopra, otterrai il seguente output:

Produzione

{3}