Erlang變量
在 Erlang 中,所有的變量都與'='語句綁定。所有變量都需要使用大寫字母開頭。在其他編程語言中,'='號是用於分配變量的值,而在 Erlang 中卻不是這樣。如上所述,變量使用「=」語句來定義。
在 Erlang 中需要注意的一個關鍵問題是,變量是不可變的。這意味着如果要修改變量的值,它需要先銷燬,並再次重新創建。
Erlang 中的基本變量將在最後一章解釋 -
數字 − 此用於表示整數或浮點數。一個例子是:10
布爾 − 這表示的一個布爾值可以是 true 或 false ;
位字符串 − 位序列(字符串)用來存儲非類型化的內存區域。一個例子是:<<40,50>>.
元組 − 元組是具有固定數量混合數據類型的術語。一個例子是: {40,50}.
映射 − 映射是用 鍵-值關聯的可變數量的複合數據類型。映射中的每個鍵值關聯稱爲關聯對。一個例子是 {type=>person,age=>25}.
列表 − 列表是可變數量的混合數據類型的一個術語。一個例子是 [40,40].
變量聲明
在 Erlang 中定義一個變量的一般語法如下 -
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 個變量,一個變量是 X,它被綁定到值40;另一個變量是Y,它被綁定到一個值是:50;另一個變量 Result 綁定到的是 X 和 Y 相加的值:50 。
以下是變量聲明的一個例子 -
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函數是 Erlang 「io」 模塊的一部分,它可以用來輸出程序中變量的值。
下面的例子列出了可與 fwrite 語句一起使用了幾個參數。
示例
-module(helloworld).
-export([start/0]).
start() ->
X = 40.00,
Y = 50.00,
io:fwrite("fn",[X]),
io:fwrite("~e",[Y]).
執行上面的程序,輸出結果如下:
40.000000
5.00000e+1
對上述程序以下幾點應注意。
~ − 此字符標誌着需要執行某些格式輸出;
~f −參數是 float 被寫爲 [-]ddd.ddd;
~n − 類似於 println 輸出一個新行;
~e − 參數是 float 被寫爲 [-]d.ddde+-ddd ;