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語句:返回結果
           




    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章