Erlang-variables
アーラン-変数
Erlangでは、すべての変数は「=」ステートメントでバインドされます。 すべての変数は大文字で始まる必要があります。 他のプログラミング言語では、「=」記号が割り当てに使用されますが、Erlangの場合は使用されません。 前述のように、変数は「=」ステートメントを使用して定義されます。
Erlangで注意すべき重要な点の1つは、変数が不変であるということです。つまり、変数の値を変更するには、変数を破棄して再作成する必要があります。
Erlangの次の基本的な変数は、最後の章で説明されています-
- 数字-これは、整数または浮動小数点数を表すために使用されます。 例は10です。
- ブール-これはブール値を表し、trueまたはfalseのいずれかです。
- ビット文字列-ビット文字列は、型なしメモリの領域を格納するために使用されます。 例は<< 40,50 >>です。
- タプル-タプルは、固定数の用語を持つ複合データ型です。 例は\ {40,50}です。
- Map -マップは、可変値のキーと値の関連付けを持つ複合データ型です。 マップ内の各キーと値の関連付けは、関連付けペアと呼ばれます。 例は\ {type ⇒ person、age ⇒ 25}です。
- リスト-リストは、可変数の用語を持つ複合データ型です。 例は[40,40]です。
可変宣言
変数を定義する一般的な構文は次のとおりです-
構文
var-name = var-value
どこで、
- var-name -これは変数の名前です。
- var-value -これは変数にバインドされた値です。
以下は、変数宣言の例です-
例
-module(helloworld).
-export([start/0]).
start() ->
X = 40,
Y = 50,
Result = X + Y,
io:fwrite("~w",[Result]).
上記の例では、2つの変数があります。1つはXで値40にバインドされ、次はYで値50にバインドされています。 Resultという別の変数は、XとYの追加にバインドされます。
上記のプログラムの出力は次のようになります-
出力
90
変数の命名
説明したように、変数名は大文字で始まる必要があります。 小文字で宣言された変数の例を見てみましょう。
例
-module(helloworld).
-export([start/0]).
start() ->
X = 40,
Y = 50,
result = X + Y,
io:fwrite("~w",[Result]).
上記のプログラムをコンパイルしようとすると、次のコンパイル時エラーが発生します。
出力
helloworld.erl:8: variable 'Result' is unbound
第二に、すべての変数は一度しか割り当てることができません。 変数を複数回割り当てる例を見てみましょう。
例
-module(helloworld).
-export([start/0]).
start() ->
X = 40,
Y = 50,
X = 60,
io:fwrite("~w",[X]).
上記のプログラムをコンパイルしようとすると、次のコンパイル時エラーが表示されます。
出力
helloworld.erl:6: Warning: variable 'Y' is unused
helloworld.erl:7: Warning: no clause will ever match
helloworld.erl:7: Warning: the guard for this clause evaluates to 'false'
変数の印刷
このセクションでは、変数を印刷するさまざまな機能の使用方法について説明します。
io:fwrite関数を使用する
これ(io:fwrite)が上記のすべてのプログラムで使用されるのを見たことがあるでしょう。 fwrite 関数は、プログラム内の変数の値を出力するために使用できる「io」モジュールまたはErlangの一部です。
次の例は、fwriteステートメントで使用できるいくつかのパラメーターを示しています。
例
-module(helloworld).
-export([start/0]).
start() ->
X = 40.00,
Y = 50.00,
io:fwrite("~f~n",[X]),
io:fwrite("~e",[Y]).
上記のプログラムの出力は次のようになります-
出力
40.000000
5.00000e+1
上記のプログラムについて、以下のポインターに注意する必要があります。
- 〜-この文字は、出力のために何らかのフォーマットを実行する必要があることを象徴しています。
- *〜f *-引数は[-] ddd.dddとして記述される浮動小数点数で、精度は小数点以下の桁数です。 デフォルトの精度は6で、1未満にはできません。
- 〜n *-これは、新しい行に *println することです。
- *〜e *-引数は[-] d.ddde&plus; -dddとして記述される浮動小数点数で、精度は書き込まれた桁数です。 デフォルトの精度は6で、2未満にはできません。