--初始化表(類)
person =
--模擬構造方法,(可以在該方法中初始化物件字段)
function person:new()
--初始化乙個新錶(物件)
local obj = {}
--將當前類作為新錶的元表
setmetatable(obj, person)
--設定索引,使新錶能訪問到舊表
person.__index = person
--當呼叫new方法時,返回新錶(例項化物件)
return obj
end--模擬乙個方法
function person:show()
print(self.name, self.age)
endreturn person
--例項化物件
personobj = person.new()
personobj.name = "aa"
personobj.age = 20
--呼叫方法用冒號「:」,否則訪問不到self
personobj:show()
animal =
function animal:new(name)
local obj = {}
setmetatable(obj,self)
self.__index = self
self.name = name
return obj
endfunction animal:show()
print("我是動物:" .. self.name)
end---------繼承-----------
--子類繼承父類
--(呼叫new方法,建立新錶(類),bird中的方法才能訪問到animal中的字段)
bird = animal:new()
--子類構造方法
function bird:new(name)
--繼承類animal(呼叫new方法,建立新錶(類),並初始化)
local obj = animal:new(name)
setmetatable(obj,bird)
bird.__index = bird
return obj
endfunction bird:eat(food)
print(self.name .. "吃:" .. food)
endbirdobj = bird:new("鳥")
birdobj:eat("公尺")
Xlua基礎 三 Lua呼叫C
1.new c 物件 local newgameobj cs.unityengine.gameobject local newgameobj2 cs.unityengine.gameobject helloworld print newgameobj,newgameobj2 2.訪問靜態屬性,方法 ...
Lua與C 呼叫Lua函式(三)
lua允許在乙個文字中定義函式,並且可以通過c語言來呼叫這個函式。先將帶呼叫的函式壓棧,並壓入函式的引數。然後是用lua pcall進行實際呼叫。最後,將呼叫結果從戰中彈出。lua函式 function add x,y return x y end c language double add lua...
記錄Lua與常見開發語言的差異
1 通過table和metatable來模擬物件導向的開發模式 2 function的返回值可以有多個 見下例 function getval return 1,2 endlocal a,b getval a 1,b 2 3 以陣列形式儲存的時候,下標從1開始 1代表最後乙個元素 4 table中可...