Erlang-modules
Erlang-モジュール
モジュールは、単一の名前で単一のファイルに再グループ化された一連の関数です。 さらに、Erlangのすべての関数はモジュールで定義する必要があります。
プログラムの実行時にデフォルトのモジュールがロードされるため、算術演算子、論理演算子、ブール演算子などの基本的な機能のほとんどはすでに利用可能です。 使用するモジュールで定義されている他のすべての関数は、 Module:Function (Arguments)の形式で呼び出す必要があります。
モジュールの定義
モジュールを使用すると、関数と属性の2種類のことを宣言できます。 属性は、モジュールの名前、外部から見える機能、コードの作成者など、モジュール自体を記述するメタデータです。 この種のメタデータは、コンパイラにジョブの実行方法に関するヒントを提供し、ソースを参照することなくコンパイルされたコードから有用な情報を取得できるため便利です。
関数宣言の構文は次のとおりです-
構文
-module(modulename)
ここで、 modulename はモジュールの名前です。 これは、モジュール内のコードの最初の行でなければなりません。
次のプログラムは、 helloworld というモジュールの例を示しています。
例
-module(helloworld).
-export([start/0]).
start() ->
io:fwrite("Hello World").
上記のプログラムの出力は-
出力
Hello World
モジュール属性
モジュール属性は、モジュールの特定のプロパティを定義します。 モジュール属性は、タグと値で構成されます。
属性の一般的な構文は次のとおりです-
構文
-Tag(Value)
属性の使用方法の例は、次のプログラムに示されています-
例
-module(helloworld).
-author("TutorialPoint").
-version("1.0").
-export([start/0]).
start() ->
io:fwrite("Hello World").
上記のプログラムは、authorとversionと呼ばれる2つのカスタム属性を定義します。これらには、それぞれプログラムの作成者とプログラムのバージョン番号が含まれています。
上記のプログラムの出力は-
出力
Hello World
事前作成された属性
Erlangには、モジュールにアタッチできるビルド済みの属性がいくつかあります。 それらを見てみましょう。
輸出する
exports属性は、他のモジュールで使用するためにエクスポートする関数とアリティのリストを取ります。 モジュールインターフェイスを定義します。 これは、以前のすべての例ですでに見ています。
構文
export([FunctionName1/FunctionArity1,.,FunctionNameN/FunctionArityN])
どこで、
- FunctionName -これはプログラム内の関数の名前です。
- FunctionArity -これは、関数に関連付けられているパラメーターの数です。
例
-module(helloworld).
-author("TutorialPoint").
-version("1.0").
-export([start/0]).
start() ->
io:fwrite("Hello World").
上記のプログラムの出力は次のようになります-
出力
Hello World
インポート
import属性は、他のモジュールから関数をインポートしてローカルとして使用するために使用されます。
構文
-import (modulename , [functionname/parameter]).
どこで、
- Modulename -これは、インポートする必要があるモジュールの名前です。
- functionname/parameter -インポートする必要があるモジュール内の関数。
例
-module(helloworld).
-import(io,[fwrite/1]).
-export([start/0]).
start() ->
fwrite("Hello, world!\n").
上記のコードでは、importキーワードを使用してライブラリ「io」、特にfwrite関数をインポートしています。 したがって、fwrite関数を呼び出すたびに、どこでもioモジュール名を言及する必要はありません。
上記のプログラムの出力は次のようになります-
出力
Hello, world!