Lua基礎(C 的差異)三

2021-10-02 09:31:19 字數 1297 閱讀 6144

--初始化表(類)

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中可...