為了瞭解 Erlang 的基本語法,讓我們在一個簡單的 Hello World 程式先來看看。
示例
% hello world program -module(helloworld). -export([start/0]). start() -> io:fwrite("Hello, world!\n").
對上述程式需要注意下麵的一些事項 -
-
%符號是用來在程式中添加注釋的;
-
模組聲明中,就像其他編程語言中的命名空間一樣。所以在這裏,這個代碼將是一個叫作 helloworld 模組的一部分;
-
export 函數用於使得程式中定義的任何函數都可以使用。我們定義了一個名為 start 的函數,但是如果要使用 start 函數,我們必須使用 export 語句。而 /0 則表 start 函數接受 0 個參數。
-
最後,我們定義 start 函數。在這裏,我們使用一個模組: io ,這個模組在 Erlang 中提供有輸入輸出功能。我們使用 fwrite 函數來輸出 “Hello World” 到控制臺。
上述程式保存到一個檔:helloworld.erl,並放到 D:\worsp 目錄下,打開終端,進入到 D:\worsp 目錄下,執行以下命令,將會輸出如下結果 -


語句的一般形式
你可能已經看到在 Erlang 語言中使用不同的符號。讓我們通過一個簡單的 Hello World 程式來說明 -
-
連字元符號(-)通常與module, import 和 export 語句一起使用。連字元符號一種用來為每個語句給出相應意思的。因此,在 Hello World 程式的例子有下麵兩個語句 -
-module(helloworld). -export([start/0]).
每個語句分隔用點(.)符號。在 Erlang 中每個語句需要使用此分隔符號作為這個語句的結束。在 Hello World 程式的例子程式如圖所示 -
io:fwrite("Hello, world!\n").
-
斜線(/)符號用於函數定義其接受的參數數量,如下 0 表示無參數傳遞
-export([start/0]).
模組
在Erlang中,所有的代碼都會分為模組。一個模組是由一系列的屬性和函數聲明來組成。它就類似於在其他編程語言中的命名空間,用來在不同的代碼單元的邏輯上分開是同一個概念的。
定義模組
模組使用 module 識別字定義。一般語法及其示例如下。
語法
-module(ModuleName)
模組名稱必須與檔案名減去擴展名 .erl 後相同。否則,預期代碼將無法加載正常工作。
語法
-module(helloworld)
這些模組在隨後的章節中被覆蓋,這只是讓你對模組應當如何定義有一個基本的理解。
Erlang中的 import 語句
在 Erlang 中,如想使用 Erlang 中現有模組的功能,可以使用 import 語句。import語句的一般形式如下面程式中描述 -
示例
-import (modulename, [functionname/parameter]).
在這裏,
-
Modulename − 這是需要被導入的模組的名稱。
-
functionname/parameter − 這是要被導入的在模組中的函數
讓我們修改之前寫的 Hello World 程式,在其中使用一個 import 語句。
如下面的示例程式中所示:
示例
% 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").
上一篇:
Erlang環境配置(開發環境)
下一篇:
Erlang Shell