Erlang 變量

在 Erlang,所有的變量都與‘ =’語句綁定。所有變量都需要以大寫字母開頭。在其他編程語言中,“ =”符號(hào)用于賦值,但不適用于 Erlang。如前所述,變量是通過使用‘ =’語句定義的。

在Erlang中要注意的一件事是變量是不可變的,這意味著為了更改變量的值,需要將其銷毀并重新創(chuàng)建。

上一章介紹了Erlang中的以下基本變量-

  • Numbers?用于表示整數(shù)或浮點(diǎn)數(shù)。例如:10。

  • Boolean ?這表示布爾值,可以為true或false。

  • Bit String?使用位串存儲(chǔ)未類型的內(nèi)存區(qū)域。例如:<< 40,50 >>。

  • Tuple?元組是具有固定數(shù)量項(xiàng)的復(fù)合數(shù)據(jù)類型。例如:{40,50}。

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

  • List?列表是具有可變項(xiàng)數(shù)的復(fù)合數(shù)據(jù)類型。例如:[40,40]。

變量聲明

定義變量的一般語法如下-

語法

var-name = var-value

在哪里,

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

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

以下是變量聲明的示例-

實(shí)例

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

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

在上面的示例中,我們有2個(gè)變量,一個(gè)是綁定到值40的X,另一個(gè)是綁定到值50的Y。另一個(gè)名為Result的變量綁定到X和Y的加法。

上面程序的輸出將是

輸出

90

命名變量

如上所述,變量名必須以大寫字母開頭。讓我們以小寫聲明的變量為例。

實(shí)例

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

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

如果嘗試編譯上述程序,則會(huì)出現(xiàn)以下編譯時(shí)錯(cuò)誤。

輸出

helloworld.erl:8: variable 'Result' is unbound

其次,所有變量只能分配一次。讓我們舉一個(gè)不只一次分配一個(gè)變量的實(shí)例。

實(shí)例

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

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

如果您嘗試編譯上述程序,則會(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é)中,我們將討論如何使用打印變量的各種功能。

使用io:fwrite函數(shù)

您應(yīng)該已經(jīng)在以上所有程序中看到了此(io:fwrite)。fwrite函數(shù)是“ io”模塊或Erlang的一部分,可用于在程序中輸出變量的值。

以下示例顯示了可以與fwrite語句一起使用的更多參數(shù)。

實(shí)例

-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

關(guān)于上述程序,應(yīng)注意以下幾點(diǎn)。

  • ~ ?此字符表示需要對(duì)輸出進(jìn)行一些格式化。

  • ~f?參數(shù)為浮點(diǎn)數(shù),寫為[-] ddd.ddd,其中precision是小數(shù)點(diǎn)后的位數(shù)。缺省精度為6,且不能小于1。

  • ~n?println這是打印到新行。

  • ~e?參數(shù)為浮點(diǎn)數(shù),寫為[-] d.ddde + -ddd,其中precision是寫入的位數(shù)。缺省精度為6,且不能小于2。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清