Lua集錦三 oo 的實現

2021-08-10 10:35:22 字數 1586 閱讀 6273

一些物件導向的語言中提供了類的概念,作為建立物件的模版。在這些  

語言裡面。物件是類的例項,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,...