變數是程式可以操作的儲存區域的名稱。 它可以包含不同型別的值,包括函式和表。
變數的名稱可以由字母,數位和下劃線字元組成。 它必須以字母或下劃線開頭。 大寫和小寫字母是不同的,因為Lua區分大小寫。Lua中有八種基本型別的值。
在Lua中,雖然沒有可變資料型別,但根據變數的範圍有三種型別。
local
時,其範圍受函式範圍限制。nil
之外的任何內容,包括函式。變數定義告訴直譯器為變數建立儲存的位置和數量。 變數定義具有可選型別,並包含該型別的一個或多個變數的列表,如下所示 -
type variable_list;
這裡,type
是可選的本地或全域性型別,而variable_list
可以包含一個或多個由逗號分隔的識別符號名稱。 這裡顯示了一些有效的宣告 -
local i, j
local i
local a,c
行local i,j
都宣告並定義變數i
和j
; 它指示直譯器建立名為i
,j
的變數,並將範圍限制為區域性。
變數可以在宣告中初始化(分配初始值)。 初始化程式包含一個等號,後跟一個常數表示式,如下所示 -
type variable_list = value_list;
同樣的一些範例如下 -
local d , f = 5 ,10 --declaration of d and f as local variables.
d , f = 5, 10; --declaration of d and f as global variables.
d, f = 10 --[[declaration of d and f as global variables.
Here value of f is nil --]]
對於沒有初始化程式的定義:具有靜態儲存持續時間的變數使用nil
隱式初始化。
正如在上面的範例中所看到的,多個變數的賦值遵循variable_list
和value_list
格式。 在上面的例子中,local d , f = 5 ,10
在variable_list
中就是d
和f
,在value_list
中就是5
和10
。
Lua中的值賦值類似於variable_list
中的第一個變數,value_list
中的第一個值,依此類推。 因此,d
的值為5
,f
的值為10
。
範例
看看以下範例,其中變數已在頂部宣告,但它們已在主函式內定義和初始化 -
-- Variable definition:
local a, b
-- Initialization
a = 10
b = 30
print("value of a:", a)
print("value of b:", b)
-- Swapping of variables
b, a = a, b
print("value of a:", a)
print("value of b:", b)
f = 70.0/3.0
print("value of f", f)
構建並執行上述程式碼時,會產生以下結果 -
value of a: 10
value of b: 30
value of a: 30
value of b: 10
value of f 23.333333333333
Lua中有兩種表達方式 -
變數是左值,因此可能出現在賦值的左側。 數位文字是右值,因此可能無法分配,也不能出現在左側。 以下是有效的宣告 -
g = 20
但是以下不是有效的語句,會產生構建時錯誤 -
10 = 20
在Lua程式設計語言中,除了上述型別的賦值之外,在同一個語句中可以有多個左值和右值。 如下所示。
g,l = 20,30
在上面的語句中,20
分配給變數g
,30
分配給變數l
。