
- 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 的基本語法,讓我們先看看一個簡單的 **Hello World** 程式。
示例
% hello world program -module(helloworld). -export([start/0]). start() -> io:fwrite("Hello, world!\n").
關於以上程式需要注意以下幾點:
% 符號用於在程式中添加註釋。
module 語句就像在任何程式語言中新增名稱空間一樣。因此,在這裡,我們提到此程式碼將是名為 **helloworld** 的模組的一部分。
export 函式用於定義程式中定義的任何函式都可以使用。我們正在定義一個名為 start 的函式,為了使用 start 函式,我們必須使用 export 語句。** /0 ** 表示我們的函式“start”接受 0 個引數。
我們最終定義了我們的 start 函式。在這裡,我們使用了另一個名為 **io** 的模組,該模組包含 Erlang 中所有必需的輸入輸出函式。我們使用 **fwrite** 函式將“Hello World”輸出到控制檯。
以上程式的輸出將是:
輸出
Hello, world!
語句的一般形式
在 Erlang 中,您已經看到 Erlang 語言中使用了不同的符號。讓我們回顧一下我們在簡單的 Hello World 程式中學到的內容:
連字元符號 **(–)** 通常與模組、匯入和匯出語句一起使用。連字元符號用於根據需要賦予每個語句含義。因此,來自 Hello World 程式的示例如下所示:
-module(helloworld). -export([start/0]).
每個語句都用點 **(.)** 符號分隔。Erlang 中的每個語句都需要以這個分隔符結尾。來自 Hello World 程式的一個示例如下所示:
io:fwrite("Hello, world!\n").
斜槓 **(/)** 符號與函式一起使用,以定義函式接受的引數數量。
-export([start/0]).
模組
在 Erlang 中,所有程式碼都分為模組。模組由一系列屬性和函式宣告組成。它就像其他程式語言中的名稱空間概念,用於邏輯上分離不同的程式碼單元。
定義模組
模組是用模組識別符號定義的。一般語法和示例如下所示。
語法
-module(ModuleName)
**ModuleName** 必須與檔名(減去副檔名 **.erl**)相同。否則程式碼載入將無法按預期工作。
示例
-module(helloworld)
這些模組將在後續章節中詳細介紹,這只是為了讓您對如何定義模組有一個基本的瞭解。
Erlang 中的匯入語句
在 Erlang 中,如果想要使用現有的 Erlang 模組的功能,可以使用 import 語句。匯入語句的一般形式如下所示:
示例
-import (modulename, [functionname/parameter]).
其中,
**Modulename** - 這是需要匯入的模組的名稱。
**functionname/parameter** - 需要匯入的模組中的函式。
讓我們更改編寫 Hello World 程式的方式以使用匯入語句。示例如下所示:
示例
% hello world program -module(helloworld). -import(io,[fwrite/1]). -export([start/0]). start() -> fwrite("Hello, world!\n").
在上面的程式碼中,我們使用 import 關鍵字匯入庫“io”和特定的 **fwrite** 函式。因此,現在無論何時呼叫 fwrite 函式,我們都不必在任何地方都提及 **io** 模組名稱。
Erlang 中的關鍵字
關鍵字是 Erlang 中的保留字,不應將其用於任何與預期用途不同的目的。以下是 Erlang 中的關鍵字列表。
after | and | andalso | band |
begin | bnot | bor | bsl |
bsr | bxor | case | catch |
cond | div | end | fun |
if | let | not | of |
or | orelse | receive | rem |
try | when | xor |
Erlang 中的註釋
註釋用於記錄您的程式碼。單行註釋透過在該行的任何位置使用 **%** 符號來識別。以下是一個示例:
示例
% hello world program -module(helloworld). % import function used to import the io module -import(io,[fwrite/1]). % export function used to ensure the start function can be accessed. -export([start/0]). start() -> fwrite("Hello, world!\n").