Lua 變數和賦值運算

2021-08-07 23:41:04 字數 2024 閱讀 9116

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...