Lua單行註釋: --
Lua基礎總結
本文總結了Lua數據類型,表達式,基本語法。
Lua單行註釋: --
多行註釋:--[[ --]]
全局變量:不需要聲明,訪問一個沒有初始化的全局變量也不會出錯,只是結果是nil。刪除一個全局變量,只給他賦值nil,即b=nil。
Lua數據類型(8種):nil,boolean,number,string,undata,function,thread,table
函數type 可以判斷變量或指定值的類型,
如: print(type("hello lua ")) --> string
print(type(type)) --> function
Nil: 一個全局變量賦值之前默認是nil,給全局變量賦nil 可以刪除該變量
Boolean: Lua中所有的值都可以作爲條件。在控制結構中,除了false和nil爲假,其餘都爲真,如 0 和空串都是真。
Numbers: 實數,Lua中沒有整數。Lua中可以處理任何長整數,不用考慮誤差。
Strings: 指字符的序列。string和其他對象一樣,Lua自動進行內存分配和釋放。
Lua可以高效的處理長字符串,1M的字符串很常見。
Lua可以使用單引號或雙引號表示字符串,不過最好使用一種,除非兩種引號嵌套的情況。
還可以使用[[---]] 表示字符串,這種方式可以包含多行。可以嵌套且不會解釋轉義序列。如果第一個字符是換行會自動忽略。
這種方式的字符串用來包含一段代碼是非常方便的。
number與string的轉換:
Lua會自動在string和number之間自動轉換,當一個字符串使用算術運算符時,string就會被轉成數字。
如:print("10" + 1 ) --> 11 print("hello" + 1 ) -- ERROR(cannt convert "hello")
數字轉換成string,使用字符串連接符。。,當在數字後面加。。時必須加上空格,以免被解釋錯。
如:print(10 .. 20) --> 1020
顯示地轉換:使用tostring() ,tonumber()
Functions:函數和其他類型一樣,可以存儲在變量中,可以作爲函數的參數,已可以是函數的返回值
UserData和Thread:
userdata可以將C數據放入Lua變量中,userdata只有賦值和相等比較操作。
表達式:
邏輯運算:and or not
關係運算:== ~=
如果兩個值類型不同,會返回false。
Lua通過引用比較tables,userdata和thread,當且僅當兩者是同一對象時相等。
特殊的地方:只有false和nil 被認爲是假
print(4 and 5 ) --> 5
print(nil and 13) --> false
print(false and 13) --> false
print(4 or 5 ) --> 4
print(false or 5) --> 5
x = x or v; 一個很實用的技巧,當x爲false或nil時,將v賦給x
C語言中的三元運算 a ? b : c , 在Lua中等價於:(a and b) or c
字符串連接運算: “hello”。。“ lua”
table的構造:
Example1:
days = {"sunday","monday","tuesday","wednesday","thursday","friday","saturday"};
print(days[4]) --> wednesday
Example2:
a = {x = 0 , y = 0}
等價於:a = {} a.x = 0 , a.y = 0
基本語法:
賦值語句:Lua可同時爲多個變量賦值,以逗號分隔。如: x ,y = y, x 交換兩個變量的值。
局部變量和代碼塊: 使用local創建局部變量。訪問局部變量的速度比全局變量快。
可以添加do。。end 來控制局部變量的作用範圍。
控制結構語句:
條件語句:
if condition1 then
statement1
elseif condition2 then
statement2
else
statementn
end;
while循環:
while condition do
statements;
end;
repeat-until循環:
repeat
statements;
until condition;
for循環有兩大類:
1. 數值for循環:
for var = exp1,exp2,exp3 do (exp3可以省略,默認step=1)
loop- part;
end;
舉例:
local found = nil;
for i=1,a.n do
if a[i] == value then
found = i;
break;
end;
end;
2. 泛型for循環:
【待以後專門總結】
break語句:退出for,repeat,while循環
return語句:返回結果
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.