Lua 基礎 學習筆記

2022-08-13 23:54:11 字數 3093 閱讀 2571

標籤(空格分隔): lua

local a, b, c = 1, 2, 3

print( a, b, c)

local a, b, c = 1, 2

print(a, b, c)

local a, b, c = 1, 2, 3, 4

print(a, b, c)

輸出:1 2 3

1 2 nil

1 2 3

do ... 

end

3.1 條件判斷

if ... then

...elseif ... then

...else

...end

3.2 迴圈迭代

3.2.1 repeat ... until true --> 條件成立退出

local a = 1

repeat

print(a)

a = a + 1

until a >= 2

輸出:1

3.2.2 while ... do ... end --> 條件不成立退出

local i = 1

while i < 3 do

print(i)

i = i + 1

end輸出:

12

3.2.3 for from, to, step do ... end step可以省略,預設不寫的話是每次加1

for i=1, 2 do

print(i)

end-- 上下程式作用一樣

for i=1, 2, 1 do

print(i)

end輸出:12

12

3.2.4 迭代函式ipairs 和pairs,ipairs只針對有序表,其中ipairs迴圈中如果遇到nil,迴圈就結束了

local list = 

for i,v in ipairs(list) do

print(i, v)

end輸出:

1 12 2

3 3local list =

for i,v in pairs(list) do

print(i, v)

end輸出:

1 12 2

3 3a 12

b 14

local list =

for i,v in ipairs(list) do

print(i, v)

end輸出:

1 1

4.1 閉包函式

function closurefunction(x)

return function ()

x = x + 1

print(x)

endendlocal f = closurefunction(100)

print(f())

print(f())

print(f())

local ff = closurefunction(200)

print(ff())

輸出:101

102103

201

只要f沒有銷毀,x值就變相的成為全域性變數(相對於f呼叫),如果是重新呼叫closurefunction還是原來的值

4.2 函式尾呼叫

function closurefunction(x)

return function ()

x = x + 1

print(x)

endendlocal function recursionfunction( x )

if x > 1 then

return recursionfunction(x - 1)

else

return print('done')

endendrecursionfunction(99999)

4.3 函式的不定引數

function functionname( ... )

---[=[

print(#arg)

print(unpack(arg))

--[[ local list =

print(#list)

print(unpack(list))

for i=1,#list do

print(list[i])

end--]]

--]=]

endfunctionname(1, 2, 3)

end

以上是不定引數的兩種不同讀取引數方法,#是用來獲取字元長度或者表長度(只限於有序表)

4.4 .和:的區別

local list = {}

function list.say( helloworld )

print(helloworld)

endlist.say("helloworld")

local list = {}

function list:say( helloworld )

print(helloworld)

endlist:say("helloworld")

list.say("do","helloworld")

區別在於 函式引數開始時,:比.多傳遞了乙個引數

:定義的函式可以用.來訪問,.定義的函式如果用:訪問一般會產生問題

local a = 5

a = a > 4 and a or 1

print(a)

輸出:5

注意:a不能是nil或者false

Lua基礎學習筆記

lua認為false和nil為假,true和非nil為真。要注意的是lua中 0 為 true lua函式多返回值 可變引數ipairs arg 也可以通過 select 來獲取可變引數的數量 連線字串 返回字串長度 陣列下標預設從1開始的。但是是可以指定包括0,或者負數 預設迭代函式 ipairs...

Lua學習筆記(基礎篇)

常用運算子 變數命名 變數名和識別符號必須以下劃線或字母開頭。名稱的本身不能包含有除字母 數字或下劃線之外的其它字元。變數名區分大小寫。變數名不得為lua中的關鍵字。lua中的關鍵字 and break do else elseif false for function if in local ni...

Lua學習筆記 Lua入門基礎的語法

變數的定義 1.通常由a z或a z組成加下劃線 數字 2.也可以 開頭加小寫字母 3.變數區分大小寫全域性與區域性變數 1.使用local關鍵字定義區域性變數 2.未使用local關鍵字的預設為全域性變數 local a 123 a為區域性變數 b 567 b為全域性變數 注意多使用區域性變數 1...