鍍金池/ 教程/ Java/ Erlang數(shù)據(jù)類型
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數(shù)據(jù)類型

任何編程語言,則需要使用變量來存儲各種類型的信息。變量是存儲器保留位置用來存儲數(shù)據(jù)值。這意味著,當(dāng)你創(chuàng)建一個變量時在內(nèi)存預(yù)留一些空間來存儲變量相關(guān)的數(shù)據(jù)值。
我們可能會存儲各種數(shù)據(jù)類型,如字符串,字符,寬字符,整數(shù),浮點數(shù),布爾等信息。基于變量的數(shù)據(jù)類型,操作系統(tǒng)分配內(nèi)存,并決定什么可以存儲在保留的存儲器位置中。

內(nèi)置數(shù)據(jù)類型

Erlang提供了多種內(nèi)置數(shù)據(jù)類型。以下是是在 Erlang 中定義的數(shù)據(jù)類型的列表 -
  • 數(shù)字 ? 在 Erlang 中,有兩種類型的數(shù)字類型:整數(shù)和浮點數(shù); 

  • 原子 ? 原子是文字,一個常數(shù)的名稱。原子被封閉在單引號('),如果它不以小寫字母開頭,或者如果它包含其它字符不是字母數(shù)字字符,下劃線(_)或 @。

  • 布爾 ? 在 Erlang 中布爾數(shù)據(jù)類型是兩個保留原子:true 和 false;

  • 位字符串 ? 字節(jié)序列用來存儲非類型化的內(nèi)存區(qū)域;

  • 元組 ? 元組是具有固定數(shù)量的混合數(shù)據(jù)類型的術(shù)語。在元組中的每一項稱為一個元素。元素的數(shù)量被認(rèn)為是元組的大??;

  • 映射 ? 映射是用 鍵-值關(guān)聯(lián)的可變數(shù)量的復(fù)合數(shù)據(jù)類型。映射中的每個鍵值關(guān)聯(lián)稱為關(guān)聯(lián)對。鍵值對的部分被稱為元素。關(guān)聯(lián)對(鍵-值)的數(shù)目被認(rèn)為是映射的大小;

  • 列表 ? 列表是由可變數(shù)量的混合數(shù)據(jù)類型組成。列表中的每個項被稱為一個元素。元素的數(shù)量被認(rèn)為是列表的長度。

注 - 你會驚奇地看到,看不到上面列表中的字符串的類型。這是因為在 Erlang 中是完全沒有定義字符串?dāng)?shù)據(jù)類型的。但是,我們將在后面的章節(jié)中看到如何處理字符串。下面是每個數(shù)據(jù)類型使用的例子。每個數(shù)據(jù)類型將詳細(xì)在隨后的章節(jié)中進行討論。

數(shù)字

數(shù)字的數(shù)據(jù)類型如何使用的例子將在下面的程序中演示。該程序顯示了 2 個整數(shù)的相加。

示例

-module(helloworld).
-export([start/0]).

start() ->
   io:fwrite("~w",[1+1]).
執(zhí)行上面的程序,輸出結(jié)果如下:
2

原子類型

原子必須以小寫字母開頭,并且可以包含大寫和小寫字母,數(shù)字,下劃線(_)和“at”符號(@)。我們還可以在單引號中使用原子。
原子數(shù)據(jù)類型如何使用的例子如下面的程序中所示。在這個程序中,我們正在創(chuàng)建一個原子被稱為 atom1 。

示例

-module(helloworld).
-export([start/0]).

start() ->
   io:fwrite(atom1).
執(zhí)行上面的程序,輸出結(jié)果如下:
atom1

布爾值

布爾數(shù)據(jù)類型使用的例子如下面的程序所示。這個例子是比較 2 個整數(shù)的值,并打印生成的布爾值到控制臺。

示例

-module(helloworld).
-export([start/0]).

start() ->
   io:fwrite(2 =< 3).

執(zhí)行上面的程序,輸出結(jié)果如下:

true

位字符串

位字符串?dāng)?shù)據(jù)類型如何使用的例子,如下面的程序所示。這個程序定義一個位字符串由2個比特位組成。binary_to_list 是 Erlang 中定義的一個內(nèi)置函數(shù),可以用于將一個位字符串轉(zhuǎn)換為列表。

示例

-module(helloworld).
-export([start/0]).

start() ->
   Bin1 = <<10,20>>,
   X = binary_to_list(Bin1),
   io:fwrite("~w",[X]).
執(zhí)行上面的程序,輸出結(jié)果如下: 
[10,20]

元組

元組數(shù)據(jù)類型如何使用的例子,如下面的程序中所示。在這里,我們定義一個元組 P,并有3項數(shù)據(jù)。tuple_size是在 Erlang 中定義的一個內(nèi)置函數(shù),它是用來確定一個元組的大小。

示例

-module(helloworld). 
-export([start/0]). 

start() -> 
   P = {john,24,{june,25}} , 
   io:fwrite("~w",[tuple_size(P)]).
執(zhí)行上面的程序,輸出結(jié)果如下: 
3

映射

如何使用映射(Map)數(shù)據(jù)類型如下面的程序中所示的例子。在這里,我們定義一個Map M1 有 2 個映射。map_size是在 Erlang 中定義一個內(nèi)置函數(shù),它是用來確定一個映射的大小。

示例

-module(helloworld). 
-export([start/0]). 

start() -> 
   M1 = #{name=>john,age=>25}, 
   io:fwrite("~w",[map_size(M1)]).
執(zhí)行上面的程序,輸出結(jié)果如下: 
2

列表

列表數(shù)據(jù)類型如何使用的例子如下面的程序中所示。在這里,我們定義一個列表L,它有 3 個數(shù)據(jù)項。length 是在 Erlang 中定義一個內(nèi)置函數(shù),它是用來確定該列表的大小。

示例

-module(helloworld). 
-export([start/0]). 

start() -> 
   L = [10,20,30] , 
   io:fwrite("~w",[length(L)]).

執(zhí)行上面的程序,輸出結(jié)果如下: 

3

上一篇:Erlang運算符下一篇:Erlang函數(shù)