Erlang - Arquivos de cabeçalho

Arquivos de cabeçalho são como arquivos de inclusão em qualquer outra linguagem de programação. É útil para dividir módulos em arquivos diferentes e, em seguida, acessar esses arquivos de cabeçalho em programas separados. Para ver os arquivos de cabeçalho em ação, vamos dar uma olhada em um de nossos exemplos anteriores de registros.

Vamos primeiro criar um arquivo chamado user.hrl e adicione o seguinte código -

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

Agora, em nosso arquivo de programa principal, vamos adicionar o seguinte código -

Exemplo

-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]).

Como você pode ver no programa acima, na verdade estamos apenas incluindo o arquivo user.hrl que insere automaticamente o –record código nele.

Se você executar o programa acima, obterá a seguinte saída.

Resultado

1
“John”

Você também pode fazer a mesma coisa com macros, pode definir a macro dentro do arquivo de cabeçalho e referenciá-la no arquivo principal. Vamos ver um exemplo disso -

Vamos primeiro criar um arquivo chamado user.hrl e adicione o seguinte código -

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

Agora, em nosso arquivo de programa principal, vamos adicionar o seguinte código -

Exemplo

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

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

Se você executar o programa acima, obterá a seguinte saída -

Resultado

{3}