鍍金池/ 教程/ Java/ Erlang變量
Erlang關(guān)系運(yùn)算符實(shí)例
Erlang決策
Erlang運(yùn)算符
Erlang if語句
Erlang Shell
Erlang循環(huán)(while和for)
Erlang函數(shù)
Erlang內(nèi)嵌if語句
Erlang模塊
Erlang多表達(dá)式
Erlang算術(shù)運(yùn)算符示例
Erlang位運(yùn)算符實(shí)例
Erlang變量
Erlang基礎(chǔ)語法
Erlang遞歸
Erlang邏輯運(yùn)算符實(shí)例
Erlang case語句
Erlang環(huán)境配置(開發(fā)環(huán)境)
Erlang數(shù)據(jù)類型
Erlang教程

Erlang變量

在 Erlang 中,所有的變量都與'='語句綁定。所有變量都需要使用大寫字母開頭。在其他編程語言中,'='號(hào)是用于分配變量的值,而在 Erlang 中卻不是這樣。如上所述,變量使用“=”語句來定義。
在 Erlang 中需要注意的一個(gè)關(guān)鍵問題是,變量是不可變的。這意味著如果要修改變量的值,它需要先銷毀,并再次重新創(chuàng)建。
Erlang 中的基本變量將在最后一章解釋 -
  • 數(shù)字 ? 此用于表示整數(shù)或浮點(diǎn)數(shù)。一個(gè)例子是:10 

  • 布爾 ? 這表示的一個(gè)布爾值可以是 true 或 false ;

  • 位字符串 ? 位序列(字符串)用來存儲(chǔ)非類型化的內(nèi)存區(qū)域。一個(gè)例子是:<<40,50>>.

  • 元組 ? 元組是具有固定數(shù)量混合數(shù)據(jù)類型的術(shù)語。一個(gè)例子是: {40,50}.

  • 映射 ? 映射是用 鍵-值關(guān)聯(lián)的可變數(shù)量的復(fù)合數(shù)據(jù)類型。映射中的每個(gè)鍵值關(guān)聯(lián)稱為關(guān)聯(lián)對(duì)。一個(gè)例子是 {type=>person,age=>25}.

  • 列表 ? 列表是可變數(shù)量的混合數(shù)據(jù)類型的一個(gè)術(shù)語。一個(gè)例子是 [40,40].

變量聲明

在 Erlang 中定義一個(gè)變量的一般語法如下 -
var-name = var-value

在這里,

  • var-name ? 這是變量的名稱

  • var-value ? 這是綁定變量的值

以下是變量聲明的一個(gè)例子 -

示例

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

start() -> 
   X = 40, 
   Y = 50, 
   Result = X + Y, 
   io:fwrite("~w",[Result]).
在上面的例子中,我們有 2 個(gè)變量,一個(gè)變量是 X,它被綁定到值40;另一個(gè)變量是Y,它被綁定到一個(gè)值是:50;另一個(gè)變量 Result 綁定到的是 X 和 Y 相加的值:50 。

以下是變量聲明的一個(gè)例子 -

90

命名變量

如前所述,變量名必須以大寫開始。讓我們看看使用小寫字母聲明變量一個(gè)例子。

示例

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

start() -> 
   X = 40, 
   Y = 50, 
   result = X + Y, 
   io:fwrite("~w",[Result]).
當(dāng)我們嘗試編譯上面的程序,就會(huì)得到下面編譯時(shí)錯(cuò)誤。
helloworld.erl:8: variable 'Result' is unbound
其次,所有變量只能分配一次。讓我們來看持分配變量多次的一個(gè)例子。

示例

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

start() -> 
   X = 40, 
   Y = 50, 
   X = 60, 
   io:fwrite("~w",[X]).

當(dāng)我們嘗試編譯上面的程序,就會(huì)得到下面編譯時(shí)錯(cuò)誤。

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'

打印變量

在本節(jié)中,我們將討論如何使用各種函數(shù)來打印變量。

使用 io:fwrite 函數(shù)

看看這個(gè) (io:fwrite) 在上述所有程序中的使用。fwrite函數(shù)是 Erlang “io” 模塊的一部分,它可以用來輸出程序中變量的值。
下面的例子列出了可與 fwrite 語句一起使用了幾個(gè)參數(shù)。

示例

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

start() -> 
   X = 40.00, 
   Y = 50.00, 
   io:fwrite("~f~n",[X]), 
   io:fwrite("~e",[Y]).
執(zhí)行上面的程序,輸出結(jié)果如下: 
40.000000
5.00000e+1
對(duì)上述程序以下幾點(diǎn)應(yīng)注意。
  • ~ ? 此字符標(biāo)志著需要執(zhí)行某些格式輸出;

  • ~f ?參數(shù)是 float 被寫為 [-]ddd.ddd; 

  • ~n ? 類似于 println 輸出一個(gè)新行; 

  • ~e ? 參數(shù)是 float 被寫為 [-]d.ddde+-ddd ;