Elixir-data-types
Elixir-データ型
任意の言語を使用するには、その言語がサポートする基本的なデータ型を理解する必要があります。 この章では、エリクサー言語でサポートされている7つの基本的なデータ型、整数、浮動小数点、ブール、アトム、文字列、リスト、タプルについて説明します。
数値型
Elixirは、他のプログラミング言語と同様に、整数と浮動小数点の両方をサポートしています。 elixirシェルを開き、整数または浮動小数点数を入力として入力すると、その値が返されます。 例えば、
42
上記のプログラムが実行されると、次の結果が生成されます-
42
数字を8進数、16進数、2進数で定義することもできます。
オクタル
8進数で数値を定義するには、「0o」をプレフィックスとして付けます。 たとえば、8進数の0o52は10進数の42と同等です。
16進数
10進数で数値を定義するには、「0x」をプレフィックスとして付けます。 たとえば、16進数の0xF1は10進数の241と同等です。
バイナリ
バイナリベースで数値を定義するには、「0b」をプレフィックスとして付けます。 たとえば、バイナリの0b1101は、10進数の13と同等です。
Elixirは、浮動小数点数に対して64ビットの倍精度をサポートしています。 また、べき乗スタイルを使用して定義することもできます。 たとえば、10145230000は1.014523e10と記述できます
原子
原子は名前が値である定数です。 color(:)シンボルを使用して作成できます。 例えば、
:hello
ブール値
Elixirはブール値として true および false をサポートしています。 これらの値は両方とも、実際にはそれぞれ原子:trueおよび:falseに付加されています。
文字列
Elixirの文字列は二重引用符の間に挿入され、UTF-8でエンコードされます。 複数行にまたがり、補間を含めることができます。 文字列を定義するには、単に二重引用符で入力します-
"Hello world"
複数行の文字列を定義するには、三重の二重引用符でPythonに似た構文を使用します-
"""
Hello
World!
"""
文字列の章では、文字列、バイナリ、および文字列(文字列に類似)について詳しく学習します。
バイナリ
バイナリは、コンマで区切られた<< >>で囲まれたバイトのシーケンスです。 例えば、
<< 65, 68, 75>>
バイナリは、もしあれば、ビットとバイトに関連するデータを処理するために主に使用されます。 デフォルトでは、各値に0〜255を保存できます。 このサイズ制限は、その値を格納するために必要なビット数を示すサイズ関数を使用して増やすことができます。 例えば、
<<65, 255, 289::size(15)>>
リスト
Elixirは角括弧を使用して値のリストを指定します。 値は任意のタイプにすることができます。 例えば、
[1, "Hello", :an_atom, true]
リストには、リストの先頭と末尾をそれぞれ返すhdとtlという名前のリストの先頭と末尾の組み込み関数が付属しています。 リストを作成すると、charリストが返されることがあります。 これは、エリクサーが印刷可能なASCII文字のリストを見ると、それを文字リストとして印刷するためです。 文字列と文字リストは等しくないことに注意してください。 リストについては、後の章でさらに説明します。
タプル
Elixirは中括弧を使用してタプルを定義します。 リストと同様に、タプルは任意の値を保持できます。
{ 1, "Hello", :an_atom, true
ここで疑問が生じます-両方が同じように機能するのに、なぜ*リスト*と*タプル*の両方を提供するのですか? まあ、彼らは異なる実装を持っています。
- リストは実際にはリンクリストとして保存されるため、リストへの挿入、削除は非常に高速です。
- 一方、タプルは連続したメモリブロックに格納されるため、アクセスが高速になりますが、挿入と削除に追加コストがかかります。