我可能做了一些愚蠢的事情,但我无法弄清楚它是什么。
我从这个程序看到的输出是
foo
test
我期待看到的是
foo
abc
test
有人在这里看到任何明显错误吗?
class Foo
def initialize(l)
@label = l
end
def label
@label
end
def abc
@abc
end
def abc=(abc)
@abc
end
end
foo = Foo.new("foo")
foo.abc=("abc")
puts foo.label
puts foo.abc
puts "test"
答案 0 :(得分:8)
您永远不会在abc=
方法中设置@abc。它应该看起来像
def abc=(val)
@abc = val
end
答案 1 :(得分:5)
除了Logan的答案,它告诉你错误是什么,这里的错误永远不会发生在第一位:
class Foo
def initialize(l)
@label = l
end
attr_reader :label
attr_accessor :abc
end