function example()
help = "no"
end
meme = example()
print(meme.help)
此代码抛出运行时错误。 我不知道该怎么做。
我试图自学lua,我知道这可以在java中完成,但我无法在lua中使用它。
答案 0 :(得分:1)
你没有回归你的职能。
如果函数没有返回任何example()
没有值,那么您将收到nil value
错误:
使用return
作为 help.meme
ed 的代码,使用function example()
help = "no"
end
example()
print(help)
将无效。由于它只返回 变量,您只需在用例中使用它:
以下代码将解决此问题:
{{1}}
答案 1 :(得分:0)
目前还不是很清楚你想要实现什么,但从你的问题来看,似乎你想要模仿Java的面向对象特性。
请记住,Lua没有“实例变量”,因为它没有类。 Lua面向对象的方法并不常见,与Java不同,它是一种基于原型的面向对象。
使用实例变量和方法创建对象的一个非常基本的方法如下:
-- this is the "instance"
myobject = {}
-- this defines a new "instance variable" named `help`
myobject.help = "this is the help text"
-- this defines a getter method for the instance
-- the special name `self` indicates the instance
function myobject:GetHelp()
return self.help
end
-- this defines a setter method for the instance
function myobject:SetHelp( help_text )
self.help = help_text
end
print( myobject:GetHelp() )
myobject:SetHelp( "new help text" )
print( myobject:GetHelp() )
您可以在浏览链接的Lua中发现有关面向对象的更多信息 Lua WIKI's page about object oriented programming