4 th Erlangモジュール1-モジュールの作成
2782 ワード
Erlangインタラクティブshellを使用すると、コードとプログラムのテストが容易になりますが、コードを大量に作成し、その後もコードを必要とする場合は、コードをファイルに保存する必要があります.これによりモジュールの概念が導入された.
モジュール
プログラミングの経験があれば、モジュールの概念に慣れていません.実はErlangのモジュールは他のプログラミング言語(Java,Python,C...)とほとんど違わない
モジュールはErlangのコードの基本ユニットであり,我々が作成したコードはすべてモジュールに存在する.モジュールファイルは、通常、以下のように格納.Erlは拡張子のファイルです.
モジュールの作成
IOW、いわゆる「モジュールの作成」とは、erlという接尾辞のソースファイルを新規作成することです.
モジュールを記述する際には,関数(function)と属性(attribute)の2つのものを定義できる.
属性(Attribute):
プロパティは、モジュール自体を記述するメタデータです.モジュールの名前、外部に表示される関数、モジュールの作成者など...
すべてのモジュールの属性は-name(Attribute)を採用する.で行ないます.モジュールには定義する必要があるプロパティがあり、常にファイルの最初のプロパティ(最初の文)です.-module(ModuleName).
ModuleNameは原子です.関数呼び出しの形式はM:F(A)で、Mはモジュール名、Fは関数名、Aは関数パラメータです.-moduleプロパティで定義されたモジュール名とモジュールファイルの名前は一致する必要があります.
モジュールファイルに-module(ModuleName)がある場合.この文は合法的なモジュールですが、関数がなければ、モジュールは役に立ちません.
では、関数の定義を始めましょう.
関数の定義
関数定義の構文はName(Args)->Body.このような形式Nameは1つの原子でなければならず、Bodyはカンマで区切られたErlang式を1つまたは複数でなければならない.関数はピリオド(.)終わります.関数の最後の式の実行結果は、呼び出し元に自動的に戻り値として渡されます(Erlangにはreturnキーはありません).
モジュールには属性&関数がありますが、使えますよね?
ここでは関数のアクセス権の問題を考慮したため、Erlangの発明者の展望と優れた設計に感心せざるを得なかった.しかもJavaのようにアクセス修飾子を使って目的を達成するわけではありません.次に、2つ目の重要なプロパティ-exportを導入します.
exportプロパティ export属性定義の一般形式:-export([Func 1/Arity,Func 2/Arity,...,FuncN/Arity]).
exportプロパティは、モジュール内のどの関数が他のモジュールによって呼び出されるかを定義し、それぞれのメタ数(arity)を持つ関数名のリストを受信します.関数のメタ数は整数で、関数が受信できるパラメータの個数を表します.このarityは、arityの個数が異なる限り、同じモジュールで2つの同名の関数を定義することが重要です.それは異なる関数です.(私たちが頬を掻くのを避けて、瞑想して関数に新しい名前を考えます).
注:エクスポートされた関数は、モジュールのインタフェースに相当します.インタフェースを定義するときは、このモジュールを使用するために必要な最小限の情報のみを露出します.
importプロパティ importプロパティ定義の一般的な形式:-import(Module,[Func 1/Arity,...,FuncN/Arity). 関数を導入する方法はコードの可読性を低下させるため、多くのプログラム猿はコードに-import属性を使用することに強く反対しているが、確かに便利である場合がある.状況を見てみましょう:io:format/2には同名の関数がありますが、別のライブラリio_lib:format/2.関数が導入された場合、コードで使用されているモジュールの関数を判断するには、have toをファイルの一番前に走って-importプロパティを見ます.
強く推奨:関数呼び出しにモジュール名が含まれますが、絶対ではありません.
Erlangのコメント
Erlangでは、コメントはすべて1行で、%記号で始まります.Erlangコミュニティでは、次のことに慣れています.モジュールの要約注釈およびモジュールのセグメント分割注釈(公有コード、プライベートコード、補助関数など)には3つのパーセント(%%)が使用される. は、独立した行に配置する必要がある他のすべての注釈に2つのパーセント(%)を使用し、周辺のコードと同じインデントを使用します. コードの後の行にコメントを入れ、単一%を使用します.
コードの例:
静的言語はコンパイル、実行の過程を経なければならないことを知っています.これでソースコードを作成することができます.次の操作はコンパイル実行の一環です.
Erlangモジュールコンパイル実行
Erlang関連書籍(PDF)が必要な仁人志士がいたら、下記のコメントで無料で差し上げます...無料で...無料で...
モジュール
プログラミングの経験があれば、モジュールの概念に慣れていません.実はErlangのモジュールは他のプログラミング言語(Java,Python,C...)とほとんど違わない
モジュールはErlangのコードの基本ユニットであり,我々が作成したコードはすべてモジュールに存在する.モジュールファイルは、通常、以下のように格納.Erlは拡張子のファイルです.
モジュールの作成
IOW、いわゆる「モジュールの作成」とは、erlという接尾辞のソースファイルを新規作成することです.
モジュールを記述する際には,関数(function)と属性(attribute)の2つのものを定義できる.
属性(Attribute):
プロパティは、モジュール自体を記述するメタデータです.モジュールの名前、外部に表示される関数、モジュールの作成者など...
すべてのモジュールの属性は-name(Attribute)を採用する.で行ないます.モジュールには定義する必要があるプロパティがあり、常にファイルの最初のプロパティ(最初の文)です.-module(ModuleName).
ModuleNameは原子です.関数呼び出しの形式はM:F(A)で、Mはモジュール名、Fは関数名、Aは関数パラメータです.-moduleプロパティで定義されたモジュール名とモジュールファイルの名前は一致する必要があります.
モジュールファイルに-module(ModuleName)がある場合.この文は合法的なモジュールですが、関数がなければ、モジュールは役に立ちません.
では、関数の定義を始めましょう.
関数の定義
関数定義の構文はName(Args)->Body.このような形式Nameは1つの原子でなければならず、Bodyはカンマで区切られたErlang式を1つまたは複数でなければならない.関数はピリオド(.)終わります.関数の最後の式の実行結果は、呼び出し元に自動的に戻り値として渡されます(Erlangにはreturnキーはありません).
%% Erlang
add(X,Y) ->
X+Y.
モジュールには属性&関数がありますが、使えますよね?
ここでは関数のアクセス権の問題を考慮したため、Erlangの発明者の展望と優れた設計に感心せざるを得なかった.しかもJavaのようにアクセス修飾子を使って目的を達成するわけではありません.次に、2つ目の重要なプロパティ-exportを導入します.
exportプロパティ
exportプロパティは、モジュール内のどの関数が他のモジュールによって呼び出されるかを定義し、それぞれのメタ数(arity)を持つ関数名のリストを受信します.関数のメタ数は整数で、関数が受信できるパラメータの個数を表します.このarityは、arityの個数が異なる限り、同じモジュールで2つの同名の関数を定義することが重要です.それは異なる関数です.(私たちが頬を掻くのを避けて、瞑想して関数に新しい名前を考えます).
注:エクスポートされた関数は、モジュールのインタフェースに相当します.インタフェースを定義するときは、このモジュールを使用するために必要な最小限の情報のみを露出します.
importプロパティ
強く推奨:関数呼び出しにモジュール名が含まれますが、絶対ではありません.
Erlangのコメント
Erlangでは、コメントはすべて1行で、%記号で始まります.Erlangコミュニティでは、次のことに慣れています.
コードの例:
%%% first.erl
%%% first
-module(first). % , ,()
-export([sayHello(1),add/2]). %
%%
%% io:format /1
sayHello(Name) ->
io:format("Hello, -s -n",[Name]). % Name []
%%
add(X,Y) ->
X + Y.
静的言語はコンパイル、実行の過程を経なければならないことを知っています.これでソースコードを作成することができます.次の操作はコンパイル実行の一環です.
Erlangモジュールコンパイル実行
Erlang関連書籍(PDF)が必要な仁人志士がいたら、下記のコメントで無料で差し上げます...無料で...無料で...