
- Erlang 教程
- Erlang - 首頁
- Erlang - 概述
- Erlang - 環境
- Erlang - 基本語法
- Erlang - Shell
- Erlang - 資料型別
- Erlang - 變數
- Erlang - 運算子
- Erlang - 迴圈
- Erlang - 決策
- Erlang - 函式
- Erlang - 模組
- Erlang - 遞迴
- Erlang - 數字
- Erlang - 字串
- Erlang - 列表
- Erlang - 檔案I/O
- Erlang - 原子
- Erlang - 對映
- Erlang - 元組
- Erlang - 記錄
- Erlang - 異常
- Erlang - 宏
- Erlang - 標頭檔案
- Erlang - 預處理器
- Erlang - 模式匹配
- Erlang - 保護條件
- Erlang - BIFS
- Erlang - 二進位制
- Erlang - Fun
- Erlang - 程序
- Erlang - 郵件
- Erlang - 資料庫
- Erlang - 埠
- Erlang - 分散式程式設計
- Erlang - OTP
- Erlang - 併發
- Erlang - 效能
- Erlang - 驅動程式
- Erlang - Web程式設計
- Erlang 有用資源
- Erlang - 快速指南
- Erlang - 有用資源
- Erlang - 討論
Erlang - 變數
在 Erlang 中,所有變數都使用 ‘=’ 語句繫結。所有變數都必須以大寫字母開頭。在其他程式語言中,‘=’ 符號用於賦值,但在 Erlang 中則不是這樣。如上所述,變數是用 ‘=’ 語句定義的。
需要注意的是,Erlang 中的變數是不可變的,這意味著要更改變數的值,需要銷燬它並重新建立。
Erlang 中的基本變數型別在最後一章解釋:
數字 - 用於表示整數或浮點數。例如 10。
布林值 - 表示布林值,可以是 true 或 false。
位串 - 位串用於儲存未型別化的記憶體區域。例如 <<40,50>>。
元組 - 元組是一種複合資料型別,具有固定數量的項。例如 {40,50}。
對映 - 對映是一種複合資料型別,具有可變數量的鍵值對關聯。對映中的每個鍵值對關聯稱為關聯對。例如 {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]).
在上面的例子中,我們有兩個變數,一個是 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 函式是 Erlang 的 ‘io’ 模組的一部分,可用於輸出程式中變數的值。
以下示例顯示了可與 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+-ddd,其中精度是寫入的數字個數。預設精度為 6,不能小於 2。