ruby error使用类初始值设定项的未定义方法

时间:2014-05-12 00:52:34

标签: ruby class

我做错了什么?我该如何解决?你能指引我一个链接吗?完整的错误在这里:

(eval):9: undefined method `value=' for #<Slot:0x14ab40 @value=243, @name="TOM"> (NoMethodError)  

以下是代码:

class Slot
  def initialize(name, value)
    @name = name
    @value = value
  end
end
a = Slot.new("TOM",243)
if a.value = 243
  puts "hello TOM"
end

1 个答案:

答案 0 :(得分:1)

在Ruby和大多数流行的编程语言中,=用于为变量赋值,而==用于比较两个变量。

因此,您的代码应为:

if a.value == 243
    ...

此外,您需要为value定义属性访问者:

attr_accessor :value

attr_reader :value

取决于您是否希望value在课堂外可写。