Ruby headscratcher - la variable d'instance n'est pas sortie
-
03-07-2019 - |
Question
Je suis probablement en train de faire quelque chose de stupide mais je n'arrive pas à comprendre ce que c'est.
La sortie de ce programme que je vois est
foo
test
Ce que j'attends de voir, c'est
foo
abc
test
Quelqu'un a-t-il vu quelque chose de manifestement faux ici?
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"
La solution
Vous ne définissez jamais @abc dans votre méthode abc =
. Cela devrait ressembler à
def abc=(val)
@abc = val
end
Autres conseils
En plus de la réponse de Logan qui vous dit quelle était l'erreur, voici comment cette erreur ne se serait jamais produite:
class Foo
def initialize(l)
@label = l
end
attr_reader :label
attr_accessor :abc
end
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow