【发布时间】:2012-01-25 20:38:38
【问题描述】:
我正在尝试了解如何在 Lua 中完成 OOP,并且我认为我有一个简单的方法可以做到这一点,但它不起作用,我只是没有看到原因。这是我正在尝试的:
Person = { };
function Person:newPerson(inName)
print(inName);
p = { };
p.myName = inName;
function p:sayHello()
print ("Hello, my name is " .. self.myName);
end
return p;
end
Frank = Person.newPerson("Frank");
Frank:sayHello();
仅供参考,我正在使用 Corona SDK,尽管我假设这并没有什么不同(除了我相信 print() 的来源)。在任何情况下,杀死我的部分是 print(inName) 报告的 inName 为 nil ...因此,myName 显然设置为 nil,因此调用 sayHello() 失败(尽管如果我硬编码一个值,它们可以正常工作myName,这让我认为我正在尝试的基本结构是合理的,但我必须遗漏一些简单的东西)。据我所知,在调用 newPerson() 时似乎没有设置 inName 的值,但我终其一生都无法弄清楚原因;我不明白为什么它不像任何其他函数调用。
任何帮助将不胜感激。谢谢!
【问题讨论】:
标签: lua