任何編程語言,則需要使用變數來存儲各種類型的資訊。變數是記憶體保留位置用來存儲數據值。這意味著,當你創建一個變數時在內存預留一些空間來存儲變數相關的數據值。
我們可能會存儲各種數據類型,如字串,字元,寬字元,整數,浮點數,布爾等資訊。基於變數的數據類型,操作系統分配記憶體,並決定什麼可以存儲在保留的記憶體位置中。
內置數據類型
Erlang提供了多種內置數據類型。以下是是在 Erlang 中定義的數據類型的列表 -
-
數字 − 在 Erlang 中,有兩種類型的數字類型:整數和浮點數;
-
原子 − 原子是文字,一個常數的名稱。原子被封閉在單引號('),如果它不以小寫字母開頭,或者如果它包含其他字元不是字母數字字元,下劃線(_)或 @。
-
布爾 − 在 Erlang 中布爾數據類型是兩個保留原子:true 和 false;
-
位字串 − 位元組序列用來存儲非類型化的記憶體區域;
-
元組 − 元組是具有固定數量的混合數據類型的術語。在元組中的每一項稱為一個元素。元素的數量被認為是元組的大小;
-
映射 − 映射是用 鍵-值關聯的可變數量的複合數據類型。映射中的每個鍵值關聯稱為關聯對。鍵值對的部分被稱為元素。關聯對(鍵-值)的數目被認為是映射的大小;
-
列表 − 列表是由可變數量的混合數據類型組成。列表中的每個項被稱為一個元素。元素的數量被認為是列表的長度。
注 - 你會驚奇地看到,看不到上面列表中的字串的類型。這是因為在 Erlang 中是完全沒有定義字串數據類型的。但是,我們將在後面的章節中看到如何處理字串。下麵是每個數據類型使用的例子。每個數據類型將詳細在隨後的章節中進行討論。
數字
數字的數據類型如何使用的例子將在下面的程式中演示。該程式顯示了 2 個整數的相加。
示例
-module(helloworld). -export([start/0]). start() -> io:fwrite("~w",[1+1]).
執行上面的程式,輸出結果如下:
2
原子類型
原子必須以小寫字母開頭,並且可以包含大寫和小寫字母,數字,下劃線(_)和“at”符號(@)。我們還可以在單引號中使用原子。
原子數據類型如何使用的例子如下面的程式中所示。在這個程式中,我們正在創建一個原子被稱為 atom1 。
示例
-module(helloworld). -export([start/0]). start() -> io:fwrite(atom1).
執行上面的程式,輸出結果如下:
atom1
布爾值
布爾數據類型使用的例子如下面的程式所示。這個例子是比較 2 個整數的值,並列印生成的布爾值到控制臺。
示例
-module(helloworld). -export([start/0]). start() -> io:fwrite(2 =< 3).
執行上面的程式,輸出結果如下:
true
位字串
位字串數據類型如何使用的例子,如下面的程式所示。這個程式定義一個位字串由2個比特位組成。binary_to_list 是 Erlang 中定義的一個內置函數,可以用於將一個位字串轉換為列表。
示例
-module(helloworld). -export([start/0]). start() -> Bin1 = <<10,20>>, X = binary_to_list(Bin1), io:fwrite("~w",[X]).
執行上面的程式,輸出結果如下:
[10,20]
元組
元組數據類型如何使用的例子,如下面的程式中所示。在這裏,我們定義一個元組 P,並有3項數據。tuple_size是在 Erlang 中定義的一個內置函數,它是用來確定一個元組的大小。
示例
-module(helloworld). -export([start/0]). start() -> P = {john,24,{june,25}} , io:fwrite("~w",[tuple_size(P)]).
執行上面的程式,輸出結果如下:
3
映射
如何使用映射(Map)數據類型如下面的程式中所示的例子。在這裏,我們定義一個Map M1 有 2 個映射。map_size是在 Erlang 中定義一個內置函數,它是用來確定一個映射的大小。
示例
-module(helloworld). -export([start/0]). start() -> M1 = #{name=>john,age=>25}, io:fwrite("~w",[map_size(M1)]).
執行上面的程式,輸出結果如下:
2
列表
列表數據類型如何使用的例子如下面的程式中所示。在這裏,我們定義一個列表L,它有 3 個數據項。length 是在 Erlang 中定義一個內置函數,它是用來確定該列表的大小。
示例
-module(helloworld). -export([start/0]). start() -> L = [10,20,30] , io:fwrite("~w",[length(L)]).
執行上面的程式,輸出結果如下:
3
上一篇:
Erlang Shell
下一篇:
Erlang變數