我做错了什么?我该如何解决?你能指引我一个链接吗?完整的错误在这里:
(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
答案 0 :(得分:1)
在Ruby和大多数流行的编程语言中,=
用于为变量赋值,而==
用于比较两个变量。
因此,您的代码应为:
if a.value == 243
...
此外,您需要为value
定义属性访问者:
attr_accessor :value
或
attr_reader :value
,
取决于您是否希望value
在课堂外可写。