function example()
help = "no"
end
meme = example()
print(meme.help)
이 코드는 런타임 오류를 발생시킵니다. 나는 무엇을해야할지 모른다.루아에서 인스턴스 변수를 어떻게 참조합니까?
나는 루아를 가르치려고하고 있는데, 이것은 자바에서 할 수 있다는 것을 알고 있지만, 루아에서 일하도록 할 수는 없다.
function example()
help = "no"
end
meme = example()
print(meme.help)
이 코드는 런타임 오류를 발생시킵니다. 나는 무엇을해야할지 모른다.루아에서 인스턴스 변수를 어떻게 참조합니까?
나는 루아를 가르치려고하고 있는데, 이것은 자바에서 할 수 있다는 것을 알고 있지만, 루아에서 일하도록 할 수는 없다.
당신이 달성하려고하는 것을 매우 명확하지 않다, 그러나 귀하의 질문에 당신이 자바의 객체 지향 기능을 에뮬레이트하려는 것 같습니다.
루아에는 클래스가 없으므로 "인스턴스 변수"가 없습니다. 루아 객체 지향 접근법은 흔하지 않으며 자바와 달리 프로토 타입 기반 객체 지향입니다.
-- 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 WIKI's page about object oriented programming에있는 링크를 검색 루아에서 객체 지향에 대한 자세한 내용을 발견 할 수 있습니다 : 인스턴스 변수와 메소드를 가진 객체를 만드는
아주 기본적인 접근 방식은 다음과 같다.
너 너무 많이 고마워 나는 심지어 깨닫지 못했다 –
귀하는 귀하의 기능으로 복귀하지 않으 셨습니다. 사용하여 코드가 return
에드되고있는로 사용
:
기능 따라서 당신이 nil value
오류가 발생하고, 값이없는 example()
아무것도 반환하지 않는 경우 help.meme
이 작동하지 않습니다.
아래의 코드는이 해결됩니다 :이 그대로 만 변수는 단순히 사용하는 경우에 이것을 사용할 수 있습니다 반환
function example()
help = "no"
end
example()
print(help)
http://puu.sh/djCCK/5eb36e5abe.png 오류를 던지지 않고 nil을 인쇄합니다. –
@JosephFazekas 코드를 수정 했으므로 올바르게 반환됩니다. – cybermonkey
감사합니다. 그러나이 코드를 사용하여 값을 인쇄하기 만하면됩니다. 나는 그것을 바꿀 수 있기를 원한다. @cybermonkey –
http://puu.sh/djClh/1d4312f5cf.png –
코로나 SDK를 사용하여 –
'example()'의 값을 '반환'하지 않았습니다. 내 대답을 참조하십시오. – cybermonkey