- Erlang 教程
- Erlang - 首頁
- Erlang - 概述
- Erlang - 環境
- Erlang - 基本語法
- Erlang - Shell
- Erlang - 資料型別
- Erlang - 變數
- Erlang - 運算子
- Erlang - 迴圈
- Erlang - 決策
- Erlang - 函式
- Erlang - 模組
- Erlang - 遞迴
- Erlang - 數字
- Erlang - 字串
- Erlang - 列表
- Erlang - 檔案 I/O
- Erlang - 原子
- Erlang - 對映
- Erlang - 元組
- Erlang - 記錄
- Erlang - 異常
- Erlang - 宏
- Erlang - 標頭檔案
- Erlang - 預處理器
- Erlang - 模式匹配
- Erlang - 保衛
- Erlang - BIFS
- Erlang - 二進位制
- Erlang - 函式
- Erlang - 程序
- Erlang - 郵件
- Erlang - 資料庫
- Erlang - 埠
- Erlang - 分散式程式設計
- Erlang - OTP
- Erlang - 併發
- Erlang - 效能
- Erlang - 驅動
- Erlang - Web 程式設計
- Erlang 有用資源
- Erlang - 快速指南
- Erlang - 有用資源
- Erlang - 討論
Erlang - 模組
模組是一組函式,這些函式在一個檔案中,在一個名稱下重新組合。此外,Erlang 中的所有函式都必須在模組中定義。
大多數基本功能(如算術、邏輯和布林運算子)已經可用,因為預設模組在程式執行時載入。您將使用的模組中定義的每個其他函式都需要以Module:Function (Arguments)的形式呼叫。
定義模組
使用模組,您可以宣告兩種東西:函式和屬性。屬性是描述模組本身的元資料,例如其名稱、應向外部世界可見的函式、程式碼的作者等等。這種元資料很有用,因為它為編譯器提供了關於如何完成其工作的提示,並且因為它允許人們從編譯後的程式碼中檢索有用的資訊,而無需查閱原始碼。
函式宣告的語法如下所示:
語法
-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 的自定義屬性,它們分別包含程式作者和程式版本號。
上述程式的輸出為:
輸出
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!