Ruby headscratcher - Instanzvariable nicht ausgegeben
-
03-07-2019 - |
Frage
Ich bin wahrscheinlich etwas zu tun dumm, aber ich kann nicht herausfinden, was es ist.
Die Ausgabe von diesem Programm ich sehe ist
foo
test
Was ich erwarte, um zu sehen ist
foo
abc
test
Gibt es irgendetwas jemand sieht offensichtlich falsch hier?
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"
Lösung
Sie nie in Ihrer abc=
Methode gesetzt @abc. Es sollte wie folgt aussehen
def abc=(val)
@abc = val
end
Andere Tipps
Zusätzlich zu Logans Antwort, die Sie sagt, was der Fehler war, ist hier, wie diese Fehler nie an erster Stelle aufgetreten wäre:
class Foo
def initialize(l)
@label = l
end
attr_reader :label
attr_accessor :abc
end
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow