Zuvor hatte ich nach einer cleveren Möglichkeit gefragt, eine Methode unter einer bestimmten Bedingung auszuführen " Ruby - ein cleverer Weg, um eine Funktion unter einer Bedingung auszuführen ."
Die Lösungen und die Reaktionszeit war großartig, obwohl, nach der Implementierung, mit einem Hash von Lambdas wird ziemlich schnell hässlich. Also begann ich zu experimentieren.
Der folgende Code funktioniert:
def a()
puts "hello world"
end
some_hash = { 0 => a() }
some_hash[0]
Aber wenn ich dies in eine Klasse verpacke, funktioniert es nicht mehr:
class A
@a = { 0 => a()}
def a()
puts "hello world"
end
def b()
@a[0]
end
end
d = A.new()
d.b()
Ich sehe nicht, warum es nicht mehr funktionieren sollte. Kann jemand einen Vorschlag machen, wie man es wieder zum Laufen bringt?