Erlang 程式設計/術語
在 Erlang 中表達值的**基本單位**是**術語**。術語由 Erlang 的簡單型別或複雜型別組成。
整數常量寫為數字,可選地以基數和井號 (#) 為字首
1> 2. 2 2> 16#ff. 255 3> 2#1011. 11
Erlang 使用任意精度的整數,支援任意位數的整數。
Erlang 還提供另一個語法快捷方式:可以將整數寫為美元符號 ($) 和一個字元,其值為該字元的 ASCII 值。這在處理字串時很有用,因為字串通常在 Erlang 中表示為整數列表(參見下面的 字串)。
浮點數(浮點數字)寫為帶小數點的數字,可選地帶有一個用字母 e 與數字分隔的指數。
4> 1.2. 1.20000 5> 1.0. 1.00000 6> 2.0e-4. 2.00000e-4
原子是命名的常量。原子以小寫字母開頭,可以包含字母、數字和下劃線 (_);或者用單引號 (') 括起來。
1> ok. ok 2> 'OKAY'. 'OKAY' 3> this_is_an_atom. this_is_an_atom
特殊原子 true 和 false 表示布林值。
原子通常用作鍵值對中的鍵,成功和失敗的指示器(例如 ok 和 error),以及識別複雜結構的一部分以進行 模式匹配。
元組是由多個值組成的術語,長度固定。元組用大括號 ({ 和 }) 括起來,元組的元素(任何 Erlang 術語,包括元組)用逗號分隔。
1> {ok, 9}.
{ok,9}
2> {true, {127, 0, 0, 1}}.
{true,{127,0,0,1}}
3> {box, {width, 10}, {height, 35}}.
{box, {width, 10}, {height, 35}}
第三個例子展示了所謂的標記元組。在可能的情況下使用標記元組,因為它們清楚地表明瞭元組的用途。稍後,我們將研究記錄,這只是標記元組的簡寫。
列表是由多個值組成的術語,長度可變。列表用方括號 ([ 和 ]) 括起來,列表的每個成員(任何 Erlang 術語,包括列表)用逗號分隔。
列表也可以由頭部和尾部組成,用豎線字元 (|) 分隔:[Head|Tail]。尾部可以是任何有效的 Erlang 術語,但通常是表示頭部之後列表成員的列表。
1> [one, two, three].
[one,two,three]
2> [1, 2|[3, 4, 5]].
[1,2,3,4,5]
3> [{key1, value1}, {key2, value2}].
[{key1,value1},{key2,value2}]
尾部是最小的空列表 ([]) 的列表被稱為良構列表。
Erlang 沒有單獨的字串型別。字串通常由整數列表表示(標準庫的 string 模組操作這些列表)。每個整數代表字串中字元的 ASCII(或其他字元集編碼)值。為了方便起見,用雙引號 (") 括起來的字元序列等效於這些字元的數值列表。
1> "one". "one" 2> [$o, $n, $e]. "one" 3> $o. 111 4> $n. 110 5> $e. 101 6> [111, 110, 101]. "one"
Erlang shell 會“猜測”給定的列表是否是可列印字串,併為了方便將其打印出來。
Pid 或程序識別符號是 Erlang 中的一種特殊型別。要檢視 Pid 的樣子,可以使用 self() 獲取自身的 Pid。
1> self(). <0.29.0>
引用(或引用)是一個術語,即使在 Erlang 節點之間也是唯一的。可以透過呼叫 erlang:make_ref() 建立新的引用。引用僅用作唯一的標籤或識別符號。Erlang 引用不應與 C/C++ 中的引用混淆。
2> erlang:make_ref(). #Ref<0.0.0.41>
Erlang 還有其他型別,例如函式(閉包)、位元串、二進位制(任意資料的連續塊)和埠(埠識別符號),將在其相應的章節中介紹。