毁三观的变量定义
變量定義變量定義告訴解釋器為變量創(chuàng)建存儲的位置和數(shù)量。 變量定義具有可選類型,并包含該類型的一個或多個變量的列表,如下所示 -
type variable_list;
這里,type是可選的本地或全局類型,而variable_list可以包含一個或多個由逗號分隔的標(biāo)識符名稱。 這里顯示了一些有效的聲明 -
local i, j
local i
local a,c
行l(wèi)ocal i,j都聲明并定義變量i和j; 它指示解釋器創(chuàng)建名為i,j的變量,并將范圍限制為局部。
變量可以在聲明中初始化(分配初始值)。 初始化程序包含一個等號,后跟一個常量表達(dá)式,如下所示 -
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 --]]
對于沒有初始化程序的定義:具有靜態(tài)存儲持續(xù)時間的變量使用nil隱式初始化。
Lua變量聲明正如在上面的示例中所看到的,多個變量的賦值遵循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。
示例
看看以下示例,其中變量已在頂部聲明,但它們已在主函數(shù)內(nèi)定義和初始化 -
-- 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)
構(gòu)建并執(zhí)行上述代碼時,會產(chǎn)生以下結(jié)果 -
value of a: 10
value of b: 30
value of a: 30
value of b: 10
value of f 23.333333333333
左值和右值Lua中有兩種表達(dá)方式 -
左值 - 引用內(nèi)存位置的表達(dá)式稱為“左值”表達(dá)式。 左值可以顯示為賦值的左側(cè)或右側(cè)。右值 - 術(shù)語右值是指存儲在內(nèi)存中某個地址的數(shù)據(jù)值。 右值是一個不
能賦值的表達(dá)式,所以右值可能出現(xiàn)在右側(cè),但不會出現(xiàn)在賦值的左側(cè)。
變量是左值,因此可能出現(xiàn)在賦值的左側(cè)。 數(shù)字文字是右值,因此可能無法分配,也不能出現(xiàn)在左側(cè)。 以下是有效的聲明 -
g = 20
但是以下不是有效的語句,會產(chǎn)生構(gòu)建時錯誤 -
10 = 20
在Lua編程語言中,除了上述類型的賦值之外,在同一個語句中可以有多個左值和右值。 如下所示。
g,l = 20,30
在上面的語句中,20分配給變量g,30分配給變量l。
?
轉(zhuǎn)載于:https://www.cnblogs.com/gd-luojialin/p/10962722.html
總結(jié)