關於Lua指令碼文法說明學習教程是本文要介紹的內容,主要是來學習LUA的指令碼語言。Lua 的文法比較簡單,學習起來也比較省力,但功能卻並不弱。
所以,我只簡單的歸納一下Lua的一些文法規則,使用起來方便好查就可以了。估計看完了,就懂得怎麼寫Lua程式了。
在Lua中,一切都是變數,除了關鍵字。
1、首先是注釋
寫一個程式,總是少不了注釋的。
在Lua中,你可以使用單行注釋和多行注釋。
單行注釋中,連續兩個減號"--"表示注釋的開始,一直延續到行末為止。相當於C++語言中的"//"。
多行注釋中,由"--[["表示注釋開始,並且一直延續到"]]"為止。這種注釋相當於C語言中的""。在注釋當中,"[["和"]]"是可以嵌套的在lua5.1中,中括弧中間是可以加若干個"="號的,如 [==[ ... ]==]),見下面的字串表示說明。
2、Lua編程
經典的"Hello world"的程式總是被用來開始介紹一種語言。在Lua中,寫一個這樣的程式很簡單:
- print("Hello world")
在Lua中,語句之間可以用分號";"隔開,也可以用空白隔開。一般來說,如果多個語句寫在同一行的話,建議總是用分號隔開。
Lua 有好幾種程式控制語句,如:
注意一下,for的迴圈變數總是只作用於for的局部變數;當省略步進值時,for迴圈會使用1作為步進值。
使用break可以用來中止一個迴圈。
相對C語言來說,Lua有幾個地方是明顯不同的,所以面要特別注意一下:
.語句塊
語句塊在C中是用"{"和"}"括起來的,在Lua中,它是用do 和 end 括起來的。比如:
- do print("Hello") end
可以在 函數 中和 語句塊 中定局部變數。
.指派陳述式
指派陳述式在Lua被強化了。它可以同時給多個變數賦值。
例如:
a,b,c,d=1,2,3,4
甚至是:
a,b=b,a -- 多麼方便的交換變數功能啊。
在預設情況下,變數總是認為是全域的。假如需要定義局部變數,則在第一次賦值的時候,需要用local說明。比如:
local a,b,c = 1,2,3 -- a,b,c都是局部變數
.數值運算
和C語言一樣,支援 +, -, *, /。但Lua還多了一個"^"。這表示指數乘方運算。比如2^3 結果為8, 2^4結果為16。
串連兩個字串,可以用".."運處符。如:
- "This a " .. "string." -- 等於 "this a string"
所有這些操作符總是返回true或false。
對於Table,Function和Userdata類型的資料,只有 == 和 ~=可以用。相等表示兩個變數引用的是同一個資料。比如:
- a={1,2}
- b=a
- print(a==b, a~=b) --輸出 true, false
- a={1,2}
- b={1,2}
- print(a==b, a~=b) --輸出 false, true
.邏輯運算
and, or, not
其中,and 和 or 與C語言區別特別大。
在這裡,請先記住,在Lua中,只有false和nil才計算為false,其它任何資料都計算為true,0也是true!
and 和 or的運算結果不是true和false,而是和它的兩個運算元相關。
a and b:如果a為false,則返回a;否則返回b
a or b:如果 a 為true,則返回a;否則返回b
舉幾個例子:
- print(4 and 5) --輸出 5
- print(nil and 13) --輸出 nil
- print(false and 13) --輸出 false
- print(4 or 5) --輸出 4
- print(false or 5) --輸出 5
在Lua中這是很有用的特性,也是比較令人混洧的特性。
我們可以類比C語言中的語句:x = a? b : c,在Lua中,可以寫成:x = a and b or c。
最有用的語句是: x = x or v,它相當於:if not x then x = v end 。
.運算子優先順序,從低到高順序如:
3、關鍵字
關鍵字是不能做為變數的。Lua的關鍵字不多,就以下幾個:
小結:詳解關於Lua指令碼文法說明學習教程的內容介紹完了,希望通過本文的學習能對你有所協助!