- 原子: 原子是基本數據單元,以一般文字構成。構詞規則有:
- 以小寫英文字符開頭、不包含空白的連續文字。
- 以單引號包含的任意連續文字。
hello 'Hello, World!' true a3b
- 以小寫英文字符開頭、不包含空白的連續文字。
- 數字: 數字是基本數據單元,可以是整數或實數
- 連續數字符號
- 包含一個小數點的連續數字符號,並不以小數點開頭也不以小數點結尾
- 符合前二項原則,並以
+ 或 - 符號開頭
- 以#分區的數字,前者將表示進制
302 3.1416 +1 -2 16#10
- 連續數字符號
- 列表: 列表是與鏈接串行相同的數據結構。任一列表大致區分爲頭部與尾部,頭部是列表的第一項,尾部是列表除第一項之外的其他部
份
- 左邊以 [ 、右邊以 ] 符號,包含一串以逗號分隔的零或多項構句要素。
- 符合前項原則,當存在任一
| 符號時, | 的左邊有一串逗號分隔的構句要素, | 的右邊只有一個構句要素。
[] [1,2,3] [ [1],2|[] ]
- 左邊以 [ 、右邊以 ] 符號,包含一串以逗號分隔的零或多項構句要素。
- 值組: 值組是將二個、三個或多個數據放在一起的數據結構
- 左邊以 { 、右邊以 } 符號,包含一串以逗號分隔的零或多項構句要素。
{} {{1},2}
- 左邊以 { 、右邊以 } 符號,包含一串以逗號分隔的零或多項構句要素。
- 字符: Erlang將字符存爲32位的整數
- 任何可見的字符,以 $ 開頭、後接該字符符號,即表示字符本身
- 任何不可見的字符,可使用以
$ 開頭、後接該字符符號的逸出串行表達
$3 $) $\012 $\x0A $\n
- 任何可見的字符,以 $ 開頭、後接該字符符號,即表示字符本身
- 字符串: Erlang將字符串視同一列整數列表
- 以雙引號包含任意多個文字,即爲字符串。
- 以一列整數列表表達,使其中每個整數項目都落在合理的字符的值範圍,此列也是字符串。
"Hello, World!" [65,66,67]
- 以雙引號包含任意多個文字,即爲字符串。
- 二進制數據:以左邊 << 、右邊 >> 符號,包含由比特語法表示的數據
<<"Hello, World!">> <<65:8,66:8,67:8>>
- 函數識別項: Erlang容許用文字表示函數識別項,使程序中可以對指定函數做函數調用,或者當做數據傳遞。
- 函數識別項格式爲 fun 函數名稱/參數數目
fun a_function/3
- 函數識別項格式爲 fun 函數名稱/參數數目
- 程序代號: Erlang容許以自帶函數erlang:spawn/3、erlang:spawn/4、erlang:spawn/1、erlang:spawn/2等等,將指定函數啓動爲一個程序。程序啓動之後,Erlang以左邊 < 、右邊 > ,包含一個數字和點號組成的編號,表示此程序代號
> [P|_] = example:ring_proc([func,func,func]). [<0.233.0>,<0.234.0>,<0.232.0>] > P ! stop. Stop process <0.233.0> stop Stop process <0.234.0> > Stop process <0.232.0> >
- 模塊:
- Erlang容許將一些程序整理爲一個模塊。模塊的設置,是在源碼文件開頭書寫模塊標記,格式爲
-module(模組名稱). -export( [ 函數名稱/參數數目 , 函數名稱/參數數目 , ... ] ). -import( 模組名稱, [ 函數名稱/參數數目 , 函數名稱/參數數目 , ... ] ).
- 模塊名稱和函數名稱都是原子。 -module(模塊名稱)
定義模塊的名字,要與文件名相同。 -export( ... ) 定義模塊發佈的函數,模塊內的任何函數必須要發佈才能讓外部通過模塊調用該函數。 -import( ... ) 定義本模塊要從其他模塊導入哪些函數,以便本模塊自己使用。另外,爲了方便程序的撰寫並測試,還容許 -compile(export_all) 定義本模塊的所有函數全部對外發布。
-compile(export_all).
- Erlang容許將一些程序整理爲一個模塊。模塊的設置,是在源碼文件開頭書寫模塊標記,格式爲
- 宏: 宏是將一項數據以另一個文字做爲代名
- 定義宏的語法是
-define ( 代名 , 資料 ).
- 使用宏的語法是
? 代名
- Erlang有一些內定語法,例如模塊名稱爲
?MODULE
- 定義宏的語法是
Erlang-- 學習筆記1,數據格式
備註:Erlang-- 學習筆計,知識要點來自於維基百科,一些不容易懂的地方,我給出重新解釋,方便自己理解和記憶,如果有錯誤,請大家不吝指教。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.