Erlang-modules

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

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!