一些物件導向的語言中提供了類的概念,作為建立物件的模版。在這些
語言裡面。物件是類的例項,lua通過table也可以實現類的使用。
--建立父類animal
animal = --判斷object是否為空,nil就會建立乙個空的table
setmetatable(object,self)--設定animal基類為元表,算是繼承的方法
self.__index = self --同上
return
object
end,
sleep = function ( self,pram )--lua支援:運算子,代替.運算子和顯示self
print(pram,"想要好好的睡覺"
)--人類尤其是,程式設計師,記住睡覺,no nuo no die
end,
run = function ( self,pram )
print(pram,"想要好好的運動"
)--人類尤其是,程式設計師,記住運動,no nuo no die
end,
setage = function ( self,age )--繼承oc之set,get方法,看後面可否寫成巨集
self.age = age--兩個引數
print("setage="
,self.age)
return
self.age
end,
getage = function ( self )
print("getage="
,self.age)
return
self.age
end,
getcolor = function ( self )
print("getcolor="
,self.color)
return
self.color
end
} cat = animal:new
()--建立乙個空物件
cat:sleep("cat"
) cat.age = 22
cat:setage(0)
cat:getage()
cat:getcolor()
snake = animal:new
snake:sleep("snake"
) snake:getage()
function snake:sleep( animal )--子類重寫方法,即可實現子類自身
print("snake 有了乙個自己的小窩來睡覺"
) end
snake:sleep("snake"
)
csdn不支援lua,但是看著又不舒服,還是傳張吧。使用的sublimetext
Lua類的實現
cocos2dx中有關於lua類的實現,見cocos原始碼 framework functions。先講一部分比較難理解的 function class classname,super local cls inherited from lua object if super then cls set...
Lua的三目陷阱
lua 是沒有傳統意義上的三目運算子的,使用了以下格式代替 a and b or c其中 a是 boolean型別 a為 true 則 返回b 為false則返回 c 據測試,這裡有個陷阱,如果 b為nil 則無論a 為任何值,整個表示式都會返回 c 這個陷阱在某些情況下十分的好用,比如在 字串拼接...
Lua1 1 Lua 的參考手冊 (三)
出處 接上篇 7 一些例子 本段給出一些顯示 lua 特性的例子。它並不打算覆蓋完整的語言,只是顯示一有趣的使用。7.1 函式 next 和 nextvar 這個例子顯示如何使用函式 next 去遍歷乙個表的字段 function f t t is a table local i,v next t,...