我在 IRB 中测试我的代码,我输入了这个:
class be
def new_text
text = gets()
end
def show_text
puts "#{text}"
end
end
当我输入 new_text 时,它起作用了,但是当我输入 show_text 时,它出现了一个错误:
NameError: undefined local variable or method `text' for #<BE:0xd3cc08>
from (irb):14:in `show'
from (irb):14:in `show'
from C:/Program Files/Ruby1.9.2/bin/irb:12:in `<main>'
关于如何解决这个问题的任何想法?
最佳答案
将文本更改为实例变量:
class Be
def new_text
@text = gets()
end
def show_text
puts "#{@text}"
end
end
您收到错误是因为 show_text
方法试图访问一个名为 @text
的变量,该变量在您的原始示例中没有定义。
关于ruby - 为什么我的类(class)不在 ruby 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8547723/