LUA學習筆記--類型與數值

一、數據類型

與C++相同的:string 字符串類型,boolean 布爾類型

不相同的:nil  

number數值類型

userdata 自定義類型

function函數類型

thread線程類型

table表類型

這裏重點講一下表類型(table),表類型類似數組或容器,他可以存儲多個對象,但是表類型更爲靈活,表類型實現了一個關聯數組。換句話來說,數組可以用任何東西做索引,而不限於數字。表可以以不同類型的值構成,它可以包含所有類型的值。

表是lua中唯一一個數據結構,我們可以用a.name或者a["name"]來訪問表內的對象。

二、註釋

1.多行註釋:

--[[

......

......

--]]

2.單行註釋:

--單行註釋內容

三、表達式

運算符:

1.關係運算符 <    >   <=   >=   ==   ~= 

其中,== 和~=用來比較兩個值,有時也會是函數或表,只要類型不同返回的結果就是false。nil只和自己相等。

2.邏輯運算符 and or not

邏輯運算符除了nil和false之外,其他數值都爲真。這其中包括了“0”。需注意的是 and 和 or 並不是返回一個真或假的數值,而是返回兩個操作數變量的其中一個,“a and b”如果a爲真返回b否則返回a,“a or b”如果a爲真返回a否則返回b。

理解一下"(a and b)or c" == "(a?b:c)"。

3.鏈接運算符 ..

print(0 .. 1)    --輸出01,相當於C++中的加號print("10"+1)輸出101,而在lua中print("10"+1) 輸出11

四、運算符的優先級

(從高到低)

^

not    -(unary)

*   /

+   -

..

<  >  <=  >=  ~=  ==

and

or

重點在lua中有一個構造運算符{}(大括號),在C++,JAVA中表示數組,在lua中表示表類型構造器是創建和初始化表的表達式。可以直接創建空表,也可以初始化表。

注意:表類型數值下表是從“1”開始的,不推薦從“0”開始,否則很多的標準庫不能使用。

例子:

a = { [ f(1) ] = g; "x", "y"; x = 1,f(x),[30] = 23; 45 }

days = { "sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saterday" }

print( days[1] )      -- >sunday

w = { x=0,y=0, label = "console" }

x = { sin(0), sin(1), sin(2) }

w[1] = " another field "

   x.f = w

print ( w["x"] )  -->0,此處是w = { x=0,y=0, label = "console" }中尋找“x”

print ( w[1] )-->another field

print ( x.f[1] ) -->another field

w.x = nil   -->移除域“x”  變爲w = { y=0, label = "console" }

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