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"
War es hilfreich?

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
scroll top