lua 變數
變數在使用前,必須在**中進行宣告,即建立該變數。
編譯程式執行**之前編譯器需要知道如何給語句變數開闢儲存區,用於儲存變數的值。
lua 變數有三種型別:全域性變數、區域性變數、表中的域。
lua 中的變數全是全域性變數,那怕是語句塊或是函式裡,除非用 local 顯式宣告為區域性變數。
區域性變數的作用域為從宣告位置開始到所在語句塊結束。
變數的預設值均為 nil。
變數小例
上圖**:
--czhenya 變數示例
--local 修飾就是區域性變數
a = 1 --全域性變數
local b = 1 --區域性變數
print('a = '.. a,'b = '.. b)
--在函式裡也一樣
function show()
c = 2
local d = 2
end show()
print('c = '.. c,d) --d是區域性變數
do local a = 3 --區域性變數a 不會影響全域性變數a
b = 3 --而全域性b 會代替區域性b
print('a = '.. a,'b = '.. b)
endprint('a = '.. a,'b = '.. b)
賦值語句:賦值是改變乙個變數的值和改變表域的最基本的方法。
a = 'czhen' .. "ya"
b = a .. '1'
lua可以對多個變數同時賦值,變數列表和值列表的各個元素用逗號分開,賦值語句右邊的值會依次賦給左邊的變數。
c,d,e = 1,2*5,'czy'
遇到賦值語句lua會先計算右邊所有的值然後再執行賦值操作,所以我們可以這樣進行交換變數的值:
c,d = d,c
當變數個數和值的個數不一致時,lua會一直以變數個數為基礎採取以下策略:
變數個數 > 值的個數 按變數個數補足nil變數個數 < 值的個數 多餘的值會被忽略
注意:如果要對多個變數賦值必須依次對每個變數賦值。
多值賦值經常用來交換變數,或將函式呼叫返回給變數:
function show()
local x = 100
local y = 200
return x,y
endm,n = show()
show()返回兩個值,第乙個賦給a,第二個賦給b。
應該盡可能的使用區域性變數,有兩個好處:
1. 避免命名衝突。
2. 訪問區域性變數的速度比全域性變數更快。
上圖**:
--czhenya 賦值語句舉例
a = 'czhen' .. "ya"
b = a .. '1'
print('a = ' .. a,'b = ' .. b)
--依次賦值
c,d,e = 1,2*5,'czy'
print('c = ' .. c,'d = ' .. d,'e = ' .. e)
--交換值
c,d = d,c
print('c = ' .. c,'d = ' .. d)
--函式返回值賦值
function show()
local x = 100
local y = 200
return x,y
endm,n = show()
print('m = ' .. m,'n = ' .. n)
Lua基礎 變數與賦值
看以下案例 test.lua 第乙個lua指令碼 注釋使用 符 變數未定義時,預設初始化的值為nil 這樣的定義為全域性 num1 1 加了關鍵字local表示這個變數是區域性變數 local num2 2 定義變數的末尾不加分號 也是可以的,個人建議,因為lua是c寫的,寫分號還是規範點 num3...
Lua基礎 變數與賦值
看以下案例 test.lua 第乙個lua指令碼 注釋使用 符 變數未定義時,預設初始化的值為nil 這樣的定義為全域性 num1 1 加了關鍵字local表示這個變數是區域性變數 local num2 2 定義變數的末尾不加分號 也是可以的,個人建議,因為lua是c寫的,寫分號還是規範點 num3...
Lua變數以及賦值,索引操作
變數型別 全域性變數,區域性變數,表中的域 lua 中的變數全是全域性變數,那怕是語句塊或是函式裡,除非用 local 顯式宣告為區域性變數。區域性變數的作用域為從宣告位置開始到所在語句塊結束。變數的預設值均為 nila 5 全域性變數 local b 6 區域性變數 function joke c...