Erlang 模塊

模塊是在單個(gè)文件中以單個(gè)名稱重新組合的一組函數(shù)。此外,Erlang中的所有函數(shù)都必須在模塊中定義。

大多數(shù)基本功能,如算術(shù)、邏輯和布爾運(yùn)算符已經(jīng)可用,因?yàn)槟J(rèn)模塊是在程序運(yùn)行時(shí)加載的。您將要使用的模塊中定義的每個(gè)其他函數(shù)都需要使用 Module: Function (Arguments) 的形式來調(diào)用。

定義模塊

使用模塊,可以聲明兩種類型的內(nèi)容:函數(shù)和屬性。屬性是描述模塊本身的元數(shù)據(jù),比如它的名稱、應(yīng)該對外界可見的函數(shù)、代碼的作者等等。這種元數(shù)據(jù)很有用,因?yàn)樗蚓幾g器提示它應(yīng)該如何完成它的工作,還因?yàn)樗试S人們從編譯后的代碼中檢索有用的信息,而不必查閱源代碼。

函數(shù)聲明的語法如下 :

語法

-module(modulename)

這里,modulename 是模塊的名稱。這必須在模塊代碼的第一行。下面的程序顯示了一個(gè)叫 helloworld 模塊的一個(gè)實(shí)例。

示例

-module(helloworld). 
-export([start/0]). 

start() -> 
   io:fwrite("Hello World").

上面的代碼的輸出結(jié)果是 -

Hello World

模塊屬性

模塊屬性定義模塊的特定屬性,模塊屬性由標(biāo)記和值組成。

屬性的一般語法是 -

語法

-Tag(Value)

下面的實(shí)例程序是用來演示模塊屬性如何使用 -

示例

-module(helloworld). 
-author("TutorialPoint"). 
-version("1.0"). 
-export([start/0]). 

start() -> 
   io:fwrite("Hello World").

以上程序定義2個(gè)自定義屬性:author 和 version,分別用來表示該程序的作者和版本號。

上面的代碼的輸出結(jié)果是 -

Hello World

預(yù)先內(nèi)置屬性

Erlang 有可連接到模塊的某些預(yù)先內(nèi)置構(gòu)建的屬性,讓我們來看看。

導(dǎo)出

導(dǎo)出屬性將使用函數(shù)和參數(shù)數(shù)量列表導(dǎo)出到其他模塊。它將定義模塊接口。我們在前面的實(shí)例中已經(jīng)看到了這一點(diǎn)。

語法

export([FunctionName1/FunctionArity1,.,FunctionNameN/FunctionArityN])

在這里,

  • FunctionName ? 這是程序中的函數(shù)名稱;

  • FunctionArity ? 這是與函數(shù)相關(guān)聯(lián)的參數(shù)數(shù)目;

示例

-module(helloworld). 
-author("TutorialPoint"). 
-version("1.0"). 
-export([start/0]). 

start() -> 
   io:fwrite("Hello World").

上面的代碼的輸出結(jié)果是 -

Hello World

導(dǎo)入

導(dǎo)入屬性用于從另一模塊導(dǎo)入函數(shù)以將其在本地使用

語法

-import (modulename , [functionname/parameter]).

在這里,

  • Modulename ? 這是需要導(dǎo)入的模塊的名稱

  • functionname/parameter ? 這是在模塊中需要導(dǎo)入的函數(shù)

示例

-module(helloworld). 
-import(io,[fwrite/1]). 
-export([start/0]). 

start() -> 
   fwrite("Hello, world!\n").

在上面的代碼中,我們使用的是 import 這個(gè)關(guān)鍵字來導(dǎo)入庫 “io”,指定導(dǎo)入 fwrite 函數(shù)。所以,現(xiàn)在每當(dāng)調(diào)用fwrite函數(shù),不必每次都要帶上模塊的名稱。

上面的代碼的輸出結(jié)果是 -

Hello, world!
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清