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
廣告

© . All rights reserved.