لا أنتج المثال متغير - روبي headscratcher
-
03-07-2019 - |
سؤال
وأنا ربما تفعل شيئا غبيا ولكن أنا لا يمكن معرفة ما هو عليه.
وإخراج اراه من هذا البرنامج هو
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"
المحلول
وأنت لم تطأabc في طريقة abc=
الخاص بك. ينبغي أن تبدو
def abc=(val)
@abc = val
end
نصائح أخرى
وبالإضافة إلى الإجابة لوغان الذي يخبرك ما هو الخطأ، وهنا كيف أن الخطأ لم يحدث ان وقعت في المقام الأول:
class Foo
def initialize(l)
@label = l
end
attr_reader :label
attr_accessor :abc
end
لا تنتمي إلى StackOverflow