English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Erlang 変数

Erlangでは、すべての変数は「=」文でバインドされています。すべての変数は大文字で始まる必要があります。他のプログラミング言語では、「=」記号は代入に使用されますが、Erlangには適用されません。前述の通り、変数は「=」文を使用して定義されます。

Erlangでは、変数は不可変であることに注意してください。これは、変数の値を変更するにはその変数を破棄し再作成する必要があることを意味します。

前章では、Erlangの以下の基本的な変数について紹介しました-

  • Numbers- 整数や浮点数を表すために使用されます。例えば:10。

  • Boolean - これはブール値を示し、trueまたはfalseができます。

  • Bit String- ビットストリングは未型のメモリ領域を格納するためのデータ型です。例えば:<< 40,50 >>。

  • Tuple- タプルは固定数の項を持つ複合データ型です。例えば:{40,50}。

  • Map- マップは可変数の数を持つキーを持っています。-- マップは可変数の数を持つキーに関連付けられた複合データ型です。例えば:{type => person,age => 25}。

  • List- リストは可変数の数を持つ複合データ型です。例えば:[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変数が2つあります。1つは値にバインドされています。40のX、別の変数は値にバインドされています。50のY。別の名前の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: this clause's guard 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、其中precisionは小数点以下の桁数です。デフォルトの精度は6、およびそれ以下1。

  • ~nprintlnこれは新しい行に印刷します。

  • ~e−パラメータは浮動小数点数で、[-] d.ddde + -ddd、其中precisionは書き込む桁数です。デフォルトの精度は6、およびそれ以下2。