Rascador de cabeza de rubí: la variable de instancia no se genera
-
03-07-2019 - |
Pregunta
Probablemente estoy haciendo algo estúpido, pero no puedo entender qué es.
La salida que estoy viendo de este programa es
foo
test
Lo que espero ver es
foo
abc
test
¿Alguien ve algo obviamente malo aquí?
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"
Solución
Nunca configuró @abc en su método abc =
. Debería verse como
def abc=(val)
@abc = val
end
Otros consejos
Además de la respuesta de Logan que le dice cuál fue el error, así es como ese error nunca habría ocurrido en primer lugar:
class Foo
def initialize(l)
@label = l
end
attr_reader :label
attr_accessor :abc
end
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow