lua 的語法比較簡單,學習起來也比較省力,但功能卻並不弱。
在lua中,一切都是變數,除了關鍵字。請記住這句話。
前言.開發環境搭建
lua執行器:
i. 首先是注釋
寫乙個程式,總是少不了注釋的。
在lua中,你可以使用單行注釋和多行注釋。
單行注釋中,連續兩個減號"--"表示注釋的開始,一直延續到行末為止。相當於c++語言中的"//"。
多行注釋中,由"--[["表示注釋開始,並且一直延續到"]]"為止。這種注釋相當於c語言中的"/*…*/"。
在注釋當中,"[["和"]]"是可以巢狀的。
ii. lua程式設計
經典的"hello world"的程式總是被用來開始介紹一種語言。
在lua中,寫乙個這樣的程式很簡單:
print("hello world")
在lua中,語句之間可以用分號";"隔開,也可以用空白隔開。一般來說,如果多個語句寫在同一行的話,建議總是用分號隔開。
lua 有好幾種程式控制語句,如:
條件控制:if 條件 then … elseif 條件 then … else … end
while迴圈:while 條件 do … end
repeat迴圈:repeat … until 條件
for迴圈:for 變數 = 初值,終點值,步長 do … end
for迴圈:for 變數1,變數2,… ,變數n in表或列舉函式 do … end
注意一下,for的迴圈變數總是只作用於for的區域性變數,你也可以省略步進值,這時候,for迴圈會使用1作為步進值。
你可以用break來中止乙個迴圈。
但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=
b=a
print(a==b, a~=b) -- true, false
a=
b=
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 。
.運算子優先順序,從高到低順序如下:
^ not - (一元運算)
..(字串連線)
< > <= >= ~= == and or
LUA指令碼語言入門
使用例程 1.函式的使用 以下程式演示了如何在lua中使用函式,及區域性變數 例e02.lua functions function pythagorean a,b local c2 a 2 b 2 return sqrt c2 end print pythagorean 3,4 執行結果 5程式說...
五 Lua指令碼語言入門
恢復內容開始 寫完這篇lua指令碼語言入門,自己就要嘗試去用lua指令碼語言寫esp8266了,自己現在挺心急的,因為朋友使用esp8266本來說自己幫忙寫好程式的,但是用的微控制器不一樣自己沒有,沒有辦法測試,用at指令就顯得不方便,還要根據微控制器改程式,而且自己以前用感覺at指令發資訊那塊,麻...
在遊戲中如何使用LUA指令碼語言
當你希望在你的遊戲開始的時候讀取一些資訊,以配置你的遊戲,這些資訊通常都是放到乙個文字檔案中,在你的遊戲啟動的時候,你需要開啟這個檔案,然後解析字串,找到所需要的資訊。是的,或許你認為這樣就足夠了,為什麼還要使用lua呢?if player is dead then do something els...