2014-10-18 2 views
1

Итак, я создаю систему для Lua, поэтому я могу иметь в ней классы и объекты. У меня есть создание объектов вниз, проблема заключается в создании конструкторов.Использование объектов в Lua

У меня есть конструкторы, как это:

a = MyClass:Create("Hello World!") 

создать метод имеет ... в качестве аргументов, которые он проходит по методу конструктора (OnStart). Я могу просто прочитать аргументы в методе Create, но когда OnStart вызывается, аргумент каким-то образом оказывается ноль вместо «Hello World!».

Мой код:

Object = { } 

function Object:Create(...) 
    local instance = { } 
    setmetatable(instance, self) 
    self.__index = self 
    instance.Type = Object 

    -- Now we can call the constructor. 
    local arg = { ... } 
    instance.OnStart(table.unpack(arg)) 

    return instance 
end 

function Object:OnStart(msg) 
    print(msg) 
end 

test = Object:Create("Hello World!") 
print(test:ToString()) 

Некоторые, как в данном случае тзд аргумент заканчивает тем, что ноль ...

ответ

1

Кажется, я понял, почему он не работает, то небольшая деталь, которая должна быть изменено одна линия 9. Вместо instance.OnStart это должно быть instance:OnStart.