ruby - 为什么我的类(class)不在 ruby 中工作?

标签 ruby syntax-error

我在 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/

相关文章:

涉及 utc 的 Ruby 时间操作

bash - while循环语法错误文件意外结束

c++ - 为什么 "0f"在 C++ 中不被视为浮点文字?

linux - 尝试在弹性 beanstalk 中添加盐和键作为环境变量(语法错误)

ruby-on-rails - rspec 共享示例与共享上下文

ruby-on-rails - Rails - 按类别显示所有问题

ruby - 一个 Ruby 对象可以有多个特征类吗?

ruby - 获取 `initialize' : wrong number of arguments(1 for 0) (ArgumentError) for simple ruby app

erlang - : 'end' in line 55之前的Erlang语法错误

python - Django 无效 block 标记 : 'endfor' , 预期 'endblock'