Erlang-header-files

提供:Dev Guides
移動先:案内検索

Erlang-ヘッダーファイル

ヘッダーファイルは、他のプログラミング言語のインクルードファイルに似ています。 モジュールを異なるファイルに分割し、これらのヘッダーファイルに個別のプログラムにアクセスするのに便利です。 ヘッダーファイルの動作を確認するために、以前のレコードの例の1つを見てみましょう。

最初に user.hrl というファイルを作成し、次のコードを追加しましょう-

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

メインプログラムファイルに、次のコードを追加しましょう-

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

上記のプログラムからわかるように、実際には .record コードを自動的に挿入するuser.hrlファイルが含まれています。

上記のプログラムを実行すると、次の出力が得られます。

出力

1
“John”

マクロで同じことを行うこともできます。ヘッダーファイル内でマクロを定義し、メインファイルで参照することができます。 この例を見てみましょう-

最初に user.hrl というファイルを作成し、次のコードを追加しましょう-

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

メインプログラムファイルに、次のコードを追加しましょう-

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

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

上記のプログラムを実行すると、次の出力が得られます-

出力

{3}