-- 元類
people= -- 此處定義的元素都是相當於c++的靜態成員變數
-- 基類方法new
function people:new(o,n,a)
o=o or {}
setmetatable(o,self) -- self相當於c++的this指標,但是這裡指代的是元類people而不是物件o
self.__index=self
o.name=n -- 用self代替o相當於c++中給靜態成員變數賦值
o.age=a
return o
end-- 基類元方法__tostring
function people:__tostring()
local sum="名字為:"..self.name.."\n年齡為:"..self.age -- 此處self指代的是實際呼叫時的物件
return sum
end-- 基類方法walk
function people:walk()
print("我正在走!")
end-- 建立物件
me=people:new(nil,"jaxes",21)
-- 呼叫物件中的函式
print(me) -- 等價於print(tostring(me))
me:walk() -- 等價於me.walk(me)
這個部分暫時還不清楚怎麼搞,暫時做為後續儲備內容-- 類worker派生自people類
worker=people:new()
-- 派生類
function worker:new(o,n,a,id)
o=o or people:new(o,n,a)
setmetatable(o,self)
self.__index=self
o.id=id
return o
endfunction worker:__tostring()
local sum=people.__tostring(self)
sum=sum.."\nid為:"..self.id
return sum
endworker=worker:new(nil,"kaka",55,01)
print(worker)
worker:walk() -- 繼承自父類函式walk
lua學習筆記 六
建立協程,coroutine表中名為create的函式建立協程,返回值為thread型別 co coroutine.create function print hello end print co 檢視協程狀態 suspended running dead normal四種狀態 print coro...
Lua學習筆記六 package
lua和其他語言一樣,也有模組 包的概念,稍微有點不同的是,預設先從環境變數lua path中搜尋lua檔案,如果搜尋不到,則從lua cpath中搜尋c檔案。對於我來說,時而去改變環境變數,則顯得麻煩,並且在另外的環境中部署時還要修改環境變數,則顯得不人性化,因此,覺得如下方式增加搜尋路徑比較好 ...
Lua學習筆記六 package
lua和其他語言一樣,也有模組 包的概念,稍微有點不同的是,預設先從環境變數lua path中搜尋lua檔案,如果搜尋不到,則從lua cpath中搜尋c檔案。對於我來說,時而去改變環境變數,則顯得麻煩,並且在另外的環境中部署時還要修改環境變數,則顯得不人性化,因此,覺得如下方式增加搜尋路徑比較好 ...