Lua學習之基本語法

2021-07-05 09:48:11 字數 2706 閱讀 2983

堅持 成長 每日一篇

lua支援對多個變數同時賦值,當變數個數和值的個數不一致時,lua 會一直以變數個數為基礎採取以下策略。

a. 變數個數 > 值的個數 按變數個數補足 nil 

b. 變數個數 < 值的個數 多餘的值會被忽略



例如

a, b, c = 0, 1

print(a,b,c)--> 0 1 nil

a, b = a+1, b+1, b+2

-- value of b+2 is ignored -->1 2

print(a,b)

a, b, c = 0

print(a,b,c)-->0 nil nil

多值賦值經常用來交換變數,或將函式呼叫返回給變數:

例如交換變數:

x, y = y, x -- swap 'x'

for'y'

例如函式呼叫返回

functionf()

return

100,20

endx,y = f()--第乙個數100賦給x,第二個數20賦給y

print(x,y)-->100 20

使用local建立區域性變數,區域性變數只有在被宣告的那個**塊內有效。**塊:指乙個控制結構內,乙個函式體,或者乙個chunk。我們常常用乙個do..end表示乙個**塊(相當於c的{})

x = 10

local i = 1

-- local to the chunk

while i<=x do

local x = i*2

-- local to the while body

print(x) --> 2, 4, 6, 8, ...

i=i+1

endif i > 20

then

local x -- local to the "then" body

x = 20

print(x + 2)

else

print(x) --> 10 (the global one)

endprint(x) --> 10 (the global one)

應該盡可能的使用區域性變數,有兩個好處:

1. 避免命名衝突

2. 訪問區域性變數的速度比全域性變數更快.

控制結構的條件表示式結果可以是任何值,lua 認為 false 和 nil 為假,其他值為真。

if語句的結構

if conditions then

then-part

elseif conditions then

elseif-part

.. --->多個 elseif

else

else-part

end;

while 語句

while condition do

statements;

end;

repeat-until 語句:相當於c語言的do..while

repeat

statements;

until conditions

for 語句有兩大類:

第一,數值 for 迴圈:

for var=exp1,exp2,exp3 do

loop-part

end

for 將用 exp3 作為 step 從 exp1(初始值)到 exp2(終止值),執行 loop-part(每執行完一次exp1自加exp3直到加到到exp2,最後一次var一定是exp3)。如果 exp3 可以省略,預設 step=1

注意:1.如果exp裡面含有函式,函式是在迴圈前被呼叫一次。

for i=1,f(x) do

print(i)

end

f(x)只會在迴圈前被呼叫一次。

2.控制變數 var 是區域性變數自動被宣告,並且只在迴圈內有效.

3.迴圈過程中不要改變控制變數的值,那樣做的結果是不可預知的。如果要退出循

環,使用 break 語句。

第二,范型 for 迴圈:

1.遍歷迭代自函式返回的值 i負責統計執行次數,v儲存迭代出來的值,a可以是乙個表

這裡只能迭代到表的第乙個為nil的索引,而且只迭代數字索引的表的值,不迭代字串(域值)索引。

for i,v in

ipairs(a) do

print(v) end

2.乙個遍歷表 key ,這裡是遍歷表裡面包括數字索引的所有key,數字索引就是以數字為key

for k in

pairs(t) do

print(k) end

范型 for 和數值 for 有兩點相同:

1. 控制變數是區域性變數

2. 不要修改控制變數的值

break 語句用來退出當前迴圈(for、repeat、while)。在迴圈外部不可以使用。

return 用來從函式返回結果,當乙個函式自然結束時,結尾會有乙個預設的 return。 (這種函式類似 pascal 的過程(procedure))

LUA學習(二) 基本語法

eg1 print hello world 輸出函式 hello world lua語句是解釋語言,邊編譯邊執行,每句不用分號結束。eg2 變數有值的時候才有型別,否則變數本身是無型別的 a 1 b abc c d print print type a print type b print type...

Lua學習筆記 基本語法

print hello world 輸出的結果為 hello world print hello world 這是單行注釋 print hello world 使用兩個減號與兩個中括號來進行多行注釋並以中括號結尾 lua表示符用來定義乙個變數,並且表示符的選取有相關規則。表示符一般使用字母或者下劃線...

Lua 學習(2) Lua 基本語法

lua 提供了互動式程式設計模式。我們可以在命令列中輸入程式並立即檢視效果。lua 互動式程式設計模式可以通過命令 lua i 或 lua 來啟用 lua i lua 5.3.0 lua.org,puc rio 在命令列中,輸入以下命令 print hello world!接著我們按下回車鍵,輸出結...