1
我迷失在我做錯了的地方。Lua嘗試調用方法無值
我有這個簡單的代碼:
Queue = {}
Queue.__Index = Queue
function Queue.Create()
local obj = {}
setmetatable(obj, Queue)
return obj
end
function Queue:PushBack(item)
end
q = Queue.Create()
print(q)
q:PushBack(1)
當執行這個我得到「試圖調用方法‘則PushBack’(一個零值)。但是,如果我改變推回功能,這樣並相應地調用它。它的工作原理:
function Queue.PushBack(q, item)
end
q = Queue.Create()
print(q)
Queue.PushBack(q, 1)
代碼運行並正確執行我理解這一點。「」是語法糖,所以在我看來,
function Queue:PushBack(item)
將是完全一樣
Queue.PushBack(q, item)
但它死在我身上。這與我如何創建對象有關嗎?我很迷茫,我似乎無法弄清楚究竟是什麼錯誤。