Wie rufe ich eine Methode, die ein hash-Wert?

Zuvor fragte ich eine clevere Art und Weise zum ausführen einer Methode auf einem bestimmten Zustand "Ruby-ein cleverer Weg, um eine Funktion ausführen, die auf eine Bedingung."

Lösungen und response-Zeit war toll, aber bei der Umsetzung, dass ein hash-Wert lambdas bekommt hässlich sehr schnell. So begann ich zu Experimentieren.

Der folgende code funktioniert:

def a()
  puts "hello world"
end

some_hash = { 0 => a() }

some_hash[0]

Aber wenn ich wickeln Sie diese in eine Klasse, es funktioniert:

class A

  @a = { 0 => a()}

  def a()
    puts "hello world"
  end


  def b()
    @a[0]
  end

end

d = A.new()

d.b()

Ich kann nicht sehen, warum sollte es aufhören zu arbeiten, kann jeder jeden schlagen, wie es funktionieren?

InformationsquelleAutor | 2009-07-01

Schreibe einen Kommentar