我正在做一个游戏,我有一些问题我用define做了一些特殊的案例这是我的定义脚本。
def answerCorrect()
puts "Correct! Let's proceed to the next question."
points = points + 1
end
def answerWrong()
puts "Oh no! That's wrong! Try again!"
points = points - 2
input = gets.chomp
end
特殊情况是:
if input == "x"
answerCorrect()
else
answerWrong()
end
但是,我得到这个错误:
`answerCorrect': undefined method `+' for nil:NilClass (NoMethodError)
我该怎么解决?
最佳答案
问题是points
变量没有在两个方法之间共享。
考虑使用一个实例变量来管理点系统。
class AnswerEvaluator
def initialize
@points = 0
end
def answerCorrect()
puts "Correct! Let's proceed to the next question."
@points = @points + 1
end
def answerWrong()
puts "Oh no! That's wrong! Try again!"
@points = @points - 2
input = gets.chomp
end
end
如果您不想直接访问
attr_accessor
,则可以使用@points
对此进行扩展。关于ruby - 为什么我得到nil:NilClass的未定义方法`+'(NoMethodError),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41048765/