English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
モジュールは、単一のファイルに単一の名前で再結合された関数のセットです。また、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").
上記のプログラム定義2個のカスタム属性:authorとversion、それぞれプログラムの作者とバージョン番号を表します。
上記のコードの出力結果は以下の通りです -
Hello World
事前ビルド属性
Erlangには、モジュールに接続できるいくつかの事前ビルドされた属性があります。それを見てみましょう。
エクスポート属性は、関数とパラメータ数のリストを使用して他のモジュールにエクスポートされます。これにより、モジュールインターフェースが定義されます。前の例でこれを見たことがあります。
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 (modulename , [functionname/parameter]).
ここでは、
Modulename − インポートする必要があるモジュールの名前
functionname/parameter − モジュール内でインポートする必要がある関数
-module(helloworld). -import(io,[fwrite/1]). -export([start/0]). start() -> fwrite("こんにちは、world!\n").
上記のコードでは、ライブラリ「io」をインポートするために「import」このキーワードを使用しています。指定してインポートした「fwrite」関数を使用するたびに、モジュールの名前を付けなくても大丈夫です。
上記のコードの出力結果は以下の通りです -
こんにちは、world!