Erlang-data-types

提供:Dev Guides
移動先:案内検索

アーラン-データ型

プログラミング言語では、さまざまなタイプの情報を保存するためにいくつかの変数を使用する必要があります。 変数は、値を保存するために予約されたメモリの場所に他なりません。 これは、変数を作成するときに、その変数に関連付けられた値を保存するためにメモリ内にスペースを確保することを意味します。

文字列、文字、ワイド文字、整数、浮動小数点、ブールなどのさまざまなデータ型の情報を保存することができます。 変数のデータ型に基づいて、オペレーティングシステムはメモリを割り当て、予約メモリに保存できるものを決定します。

組み込みデータ型

Erlangは、さまざまな組み込みデータ型を提供します。 以下は、Erlangで定義されているデータ型のリストです-

  • Number -Erlangには、整数と浮動小数点の2種類の数値リテラルがあります。
  • Atom -アトムはリテラル、名前付きの定数です。 小文字で始まっていない場合、または英数字、アンダースコア(_)、または@以外の文字が含まれている場合、アトムは単一引用符( ')で囲まれます。
  • ブール-Erlangのブールデータ型は2つの予約されたアトムです:trueとfalse。
  • ビット文字列-ビット文字列は、型なしメモリの領域を格納するために使用されます。
  • タプル-タプルは、固定数の用語を持つ複合データ型です。 タプルの各Termは要素として呼び出されます。 要素の数はタプルのサイズと言われています。
  • Map -マップは、可変値のキーと値の関連付けを持つ複合データ型です。 マップ内の各キーと値の関連付けは、関連付けペアと呼ばれます。 ペアのキーと値の部分は要素と呼ばれます。 アソシエーションペアの数は、マップのサイズと呼ばれます。
  • リスト-リストは、可変数の用語を持つ複合データ型です。 リスト内の各用語は要素と呼ばれます。 要素の数は、リストの長さと言われます。

-上記のリストのどこにも文字列型が表示されないことに驚かれることでしょう。 これは、Erlangで排他的に定義されている文字列データ型がないためです。 しかし、次の章で文字列をどのように使用できるかを見ていきます。

以下に、各データ型の使用方法の例を示します。 繰り返しますが、各データ型については、次の章で詳しく説明します。 これは、上記のデータ型の簡単な説明を知るためのものです。

数値データ型の使用方法の例を次のプログラムに示します。 このプログラムは、2つの整数の追加を示しています。

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

start() ->
   io:fwrite("~w",[1+1]).

上記のプログラムの出力は次のようになります-

出力

2

Atom

原子は小文字で始まり、小文字と大文字、数字、アンダースコア*(_)および「アット」記号(@)*を含めることができます。 アトムを一重引用符で囲むこともできます。

アトムデータ型の使用方法の例を、次のプログラムに示します。 このプログラムでは、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]

タプル

Tupleデータ型の使用方法の例を次のプログラムに示します。

ここでは、3つの用語を持つ Tuple P を定義しています。 tuple_size はErlangで定義された組み込み関数で、タプルのサイズを決定するために使用できます。

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

start() ->
   P = {john,24,{june,25}} ,
   io:fwrite("~w",[tuple_size(P)]).

上記のプログラムの出力は次のようになります-

出力

3

Map

Mapデータ型の使用方法の例を次のプログラムに示します。

ここでは、2つのマッピングを持つ Map M1 を定義しています。 map_size は、Erlangで定義された組み込み関数であり、マップのサイズを決定するために使用できます。

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

start() ->
   M1 = #{name=>john,age=>25},
   io:fwrite("~w",[map_size(M1)]).

上記のプログラムの出力は次のようになります-

出力

2

List

Listデータ型の使用方法の例を、次のプログラムに示します。

ここでは、3つのアイテムを持つ List L を定義しています。 長さは、Erlangで定義された組み込み関数であり、リストのサイズを決定するために使用できます。

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

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

上記のプログラムの出力は次のようになります-

出力

3