鍍金池/ 教程/ Java/ Erlang基礎(chǔ)語法
Erlang關(guān)系運算符實例
Erlang決策
Erlang運算符
Erlang if語句
Erlang Shell
Erlang循環(huán)(while和for)
Erlang函數(shù)
Erlang內(nèi)嵌if語句
Erlang模塊
Erlang多表達(dá)式
Erlang算術(shù)運算符示例
Erlang位運算符實例
Erlang變量
Erlang基礎(chǔ)語法
Erlang遞歸
Erlang邏輯運算符實例
Erlang case語句
Erlang環(huán)境配置(開發(fā)環(huán)境)
Erlang數(shù)據(jù)類型
Erlang教程

Erlang基礎(chǔ)語法

為了了解 Erlang 的基本語法,讓我們在一個簡單的 Hello World 程序先來看看。

示例

% hello world program
-module(helloworld). 
-export([start/0]). 

start() -> 
   io:fwrite("Hello, world!\n").
對上述程序需要注意下面的一些事項 -
  • %符號是用來在程序中添加注釋的;
  • 模塊聲明中,就像其它編程語言中的命名空間一樣。所以在這里,這個代碼將是一個叫作 helloworld 模塊的一部分;
  • export 函數(shù)用于使得程序中定義的任何函數(shù)都可以使用。我們定義了一個名為 start 的函數(shù),但是如果要使用 start 函數(shù),我們必須使用 export 語句。而 /0 則表 start 函數(shù)接受 0 個參數(shù)。
  • 最后,我們定義 start 函數(shù)。在這里,我們使用一個模塊: io ,這個模塊在 Erlang 中提供有輸入輸出功能。
    我們使用 fwrite 函數(shù)來輸出 “Hello World” 到控制臺。
上述程序保存到一個文件:helloworld.erl,并放到 D:\worsp 目錄下,打開終端,進(jìn)入到 D:\worsp 目錄下,執(zhí)行以下命令,將會輸出如下結(jié)果 -

語句的一般形式

你可能已經(jīng)看到在 Erlang 語言中使用不同的符號。讓我們通過一個簡單的 Hello World 程序來說明 -
  • 連字符符號(-)通常與module, import 和 export 語句一起使用。連字符符號一種用來為每個語句給出相應(yīng)意思的。因此,在 Hello World 程序的例子有下面兩個語句 -
-module(helloworld).
-export([start/0]).
每個語句分隔用點(.)符號。在 Erlang 中每個語句需要使用此分隔符作為這個語句的結(jié)束。在 Hello World 程序的例子程序如圖所示 -
io:fwrite("Hello, world!\n").
  • 斜線(/)符號用于函數(shù)定義其接受的參數(shù)數(shù)量,如下 0 表示無參數(shù)傳遞
-export([start/0]).

模塊

在Erlang中,所有的代碼都會分為模塊。一個模塊是由一系列的屬性和函數(shù)聲明來組成。它就類似于在其他編程語言中的命名空間,用來在不同的代碼單元的邏輯上分開是同一個概念的。

定義模塊

模塊使用 module 標(biāo)識符定義。一般語法及其示例如下。

語法

-module(ModuleName)
模塊名稱必須與文件名減去擴(kuò)展名 .erl 后相同。否則,預(yù)期代碼將無法加載正常工作。

語法

-module(helloworld)
這些模塊在隨后的章節(jié)中被覆蓋,這只是讓你對模塊應(yīng)當(dāng)如何定義有一個基本的理解。

Erlang中的 import 語句

在 Erlang 中,如想使用 Erlang 中現(xiàn)有模塊的功能,可以使用 import 語句。import語句的一般形式如下面程序中描述 -

示例

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

在這里,

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

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

讓我們修改之前寫的 Hello World 程序,在其中使用一個 import 語句。
如下面的示例程序中所示:

示例

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

start() ->
   fwrite("Hello, world!\n").
在上面的代碼中,我們使用 import 關(guān)鍵字導(dǎo)入庫 “io”,并指定 fwrite 函數(shù)。所以,現(xiàn)在每當(dāng)調(diào)用 fwrite 函數(shù)時,我們不必再加上 io 這個模塊名稱。

Erlang中的關(guān)鍵詞

關(guān)鍵字是在 Erlang 中一個保留字,不應(yīng)被用于其目的之外的其他任何不同的目的。
以下是 Erlang 中的關(guān)鍵字列表。
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").