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)
これを実行すると、私はこのようにプッシュバック機能を変更し、それに応じてそれを呼び出す場合、私は、「しかし、メソッドを呼び出そうと 『プッシュバック』(ゼロ値)を取得します。 。私がいることを理解
function Queue.PushBack(q, item)
end
q = Queue.Create()
print(q)
Queue.PushBack(q, 1)
コードが実行され、正しく実行「:」それは動作しますシンタックスシュガーであり、それは私には思えるので、その
function Queue:PushBack(item)
は
Queue.PushBack(q, item)
とまったく同じになります。しかし、それは私に死にます。オブジェクトの作成方法と関係がありますか?私はこれでかなり失われており、正確に何が間違っているのか分からないようです。