lua靈活的語法注意點:
1. 每個語句結尾的分號(;)是可選的,但如果同一行有多個語句最好用;分開
a = 1 b = a*2-- ugly, but valid
2. 全域性變數不需要宣告,給乙個變數賦值後即建立了這個全域性變數,訪問乙個沒有初始化的全域性變數也不會出錯,只不過得到的結果是:nil.
print(b)--> nil
3. lua中有8個基本型別分別為:nil、boolean、number、string、userdata、function、thread和table。函式type可以測試給定變數或者值的型別。
print(type("hello world"))--> string
print(type(10.4*3))--> number
print(type(print))--> function
print(type(type))--> function
print(type(true))--> boolean
print(type(nil))--> nil
print(type(type(x)))--> string
4. 在控制結構的條件中除了false和nil為假,其他值都為真。所以lua認為0和空串都是真
5. lua中字串是不可以修改的,你可以建立乙個新的變數存放你要的字串,如下:
a ="one string"
b = string.gsub(a,"one","another")-- change string parts
print(a)--> one string
print(b)--> another string
6. 可以使用單引號或者雙引號表示字串
a ="a line"
b ='another line'
7. ^ 冪運算 如n^2表示n的2次方
8. 不等於:~=
9. 連線運算子:..--兩個點
10. 陣列下標從1開始
11. 表的構造
12. lua可以對多個變數同時賦值,變數列表和值列表的各個元素用逗號分開,賦值語句右邊的值會依次賦給左邊的變數。
a, b = 10, 2*x <--> a=10; b=2*x
13. 我們可以這樣進行交換變數的值:
x, y = y, x-- swap 'x' for 'y'
a[i], a[j] = a[j], a[i]-- swap 'a[i]' for 'a[i]'
14. 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
print(a,b) --> 1 2
a, b, c = 0
print(a,b,c) --> 0 nil nil常見錯誤,需要為每個變數賦值
15.a, b = f()
f()返回兩個值,第乙個賦給a,第二個賦給b。
16. 應該盡可能的使用區域性變數,有兩個好處:
1.避免命名衝突
2.訪問區域性變數的速度比全域性變數更快.
17. if語句三種形式
(a)ifconditionsthen
then-part
end;
(b)ifconditionsthen
then-part
else
else-part
end;
(c)ifconditionsthen
then-part
elseifconditionsthen
elseif-part
..--->多個elseif
else
else-part
end;
18. while語句
whileconditiondo
statements;
end;
19. for語句有兩大類:
第一, 數值for迴圈:
for i=1,4 do
print(i)
end //列印4次,i從1到4
for i=4,1,-1 do
print(i)
end //i從4到1,-1是自減1?換成0會死迴圈
第二, 范型for迴圈:
revdays = {}
for i,v in ipairs(days) do
revdays[v] = i
end20. -- 返回lua出現的初始位置跟結束位置,下標從1開始
s, e = string.find("hello lua users", "lua")
print(s, e) --> 7 9
lua環境 lua語法注意點
sudo apt get install lua5.2 方法1 命令列輸入lua i進入互動程式設計介面,輸入print hello world.回車 方法2 寫lua指令碼,如helloworld.lua,檔案內容為print hello world.命令列執行命令lua helloworld.l...
LUA語言注意點歸集
tab 和 table.getn 我們修改table tab print tab 4print table.getn tab 4tab 9 10print tab 4print table.getn tab 4print tab 9 10 使用上述的兩種方法,發現返回的table元素依舊是4。為什麼...
LUA語言注意點歸集
tab 和 table.getn 我們修改table tab print tab 4print table.getn tab 4tab 9 10print tab 4print table.getn tab 4print tab 9 10 使用上述的兩種方法,發現返回的table元素依舊是4。為什麼...