這裏重點總結一下lua基礎,幾個簡單的點,記錄下來,方便之後查看,不是很詳細,稍微歸納了一下。也但願能夠幫到lua初學者。數組
Lua簡介:函數
Lua腳本能夠很容易的被C/C++代碼調用,也能夠反過來調用C/C++的 函數,這使得Lua在應用程序中能夠被普遍應用。不只僅做爲擴展腳本, 也能夠做爲普通的配置文件,代替XML,ini等文件格式,而且更容易理解 和維護。lua
Lua由標準C編寫而成,代碼簡潔優美,幾乎在全部操做系統和平臺上 均可以編譯,運行。一個完整的Lua解釋器不過200k,在目前全部腳本引 擎中,Lua的速度是最快的。這一切 都決定了Lua是做爲嵌入式腳本的最 佳選擇。spa
1、變量操作系統
lua中變量的命名規則和C語言中同樣:字母數字下劃線,不能以數字開頭,區分大小寫,不能是關鍵字。(這估計都順嘴就出來了)code
變量的賦值規則和C語言,C++裏不是很同樣,須要注意如下兩點:blog
若是變量的個數小於值的個數,用nil補充。(下面的數據類型中會詳細介紹)索引
若是變量的個數大於值的個數,則多餘的值則將被忽略。ip
Lua中的變量也分爲全局變量和局部變量
開發
全局變量:a = 5;
局部變量:local a = 5;
2、數據類型
lua中的數據類型和C語言中的數據類型不太同樣,C語言中有多種數據類型,好比數字就有int,short,long,float,double還有枚舉類型等等好多,可是在Lua語言裏,數據類型只有八種:number, string, nil, bool, function, table, userdate, thread (userdate和thread在開發中不經常使用,因此下面就不作過多介紹了)
number:指任意實數。包括了 int,short,long,float,double。。。並且number若是有小數,除不盡的狀況下,不僅是精確到小數點後八位。
string:這個和C#裏有必定區別,在C#裏,對一個字符串從新賦值,是從新複製一塊空間,進行賦值,原字符串所佔空間不銷燬。可是在Lua裏面,就是直接在這塊空間上改寫字符串的內容。
數字和字符串之間的轉換:
將數字轉換成字符串,能夠強轉,用tostring(),或者隱式轉換(10 .. "Mumu"),須要注意,數字後面必須有空格,否則系統就默認第一個點爲小數點
字符串轉換爲數字,用tonumber(),可是必定要保證字符串是純數字,否則編譯錯誤,(不能經過ascll碼轉換)。
nil:相似於C中的null,也能夠用來對變量的刪除操做
bool:這個和其餘語言也有很大不同,C語言中是0或者false爲假,其他都爲真,而在Lua語言裏面,只有nil或者false爲假,其他爲真,包括0,這個概念必定要記住,不要和其餘語言混淆。
function:方法,使用function須要注意,必須先聲明,後調用,不然報錯。並且能夠有多個返回值。
table:表,至關於數組、字典、列表...以鍵值對形式存儲,索引值從一開始遞增一
和數組同樣,有兩種初始化方式:
方式一:先定義一個空表,而後初始化。
tab = { },
tab[1] = "Mumu"
tab["age"] = "15"
方式二:定義的同時初始化
tab = {"Mumu",age = 15}
遍歷輸出表中元素
這時有兩種遍歷方式。第一種:
for i,v in ipairs(tab) do print(i,v) end
輸出結果爲
1 Mumo [Finished in 0.1s]
第二種:
for k,v in pairs(tab) do print(k,v) end
輸出結果爲:
1 Mumo name 15 [Finished in 0.1s]
由此能夠看出,ipairs只能遍歷索引爲整數的元素,pairs能夠遍歷表中全部元素。
3、運算符
Lua中的運算符有,算術運算符,關係運算符,邏輯運算符
算術運算符:+ - * / = % ...
關係運算符:> < >= <= == ~= (Lua中的不等因而~=)
邏輯運算符:and or not (至關於C語言中的&& || !)
and:當表達式一位真的時候 返回表達式二的值,當表達式一爲假的時候,返回表達式一的值
or:當表達式一爲真的時候,返回表達式一的值,當表達式一爲假的時候,返回表達式二的值
not:取反,值爲true或者false
4、語句
語句分爲:
賦值語句,條件語句(沒有switch),循環語句
條件語句:if ... then end
循環語句: for ... do ... end while ... do ... end repeat... until....end