堅持 成長 每日一篇
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!接著我們按下回車鍵,輸出結...