- Erlang 教程
- Erlang - 首頁
- Erlang - 概述
- Erlang - 環境
- Erlang - 基本語法
- Erlang - Shell
- Erlang - 資料型別
- Erlang - 變數
- Erlang - 運算子
- Erlang - 迴圈
- Erlang - 決策
- Erlang - 函式
- Erlang - 模組
- Erlang - 遞迴
- Erlang - 數字
- Erlang - 字串
- Erlang - 列表
- Erlang - 檔案 I/O
- Erlang - 原子
- Erlang - 對映
- Erlang - 元組
- Erlang - 記錄
- Erlang - 異常
- Erlang - 宏
- Erlang - 標頭檔案
- Erlang - 預處理器
- Erlang - 模式匹配
- Erlang - 守護
- Erlang - BIFS
- Erlang - 二進位制
- Erlang - 函式
- Erlang - 程序
- Erlang - 郵件
- Erlang - 資料庫
- Erlang - 埠
- Erlang - 分散式程式設計
- Erlang - OTP
- Erlang - 併發
- Erlang - 效能
- Erlang - 驅動
- Erlang - Web 程式設計
- Erlang 有用資源
- Erlang - 快速指南
- Erlang - 有用資源
- Erlang - 討論
Erlang - 資料型別
在任何程式語言中,您都需要使用多個變數來儲存各種型別的資訊。變數只不過是保留的記憶體位置以儲存值。這意味著當您建立一個變數時,您會在記憶體中保留一些空間來儲存與該變數關聯的值。
您可能希望儲存各種資料型別的資訊,例如字串、字元、寬字元、整數、浮點數、布林值等。根據變數的資料型別,作業系統分配記憶體並決定在保留的記憶體中可以儲存什麼。
內建資料型別
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
對映
以下程式顯示瞭如何使用對映資料型別的示例。
這裡我們定義了一個對映 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