Comment dois-je appeler une méthode qui est une valeur de hachage?

Auparavant, j'ai demandé un moyen astucieux pour exécuter une méthode sur un problème donné "Ruby un moyen astucieux pour exécuter une fonction d'une condition."

Les solutions et le temps de réponse était grande, bien que, lors de la mise en œuvre, ayant une table de hachage de lambdas devient laid assez rapidement. J'ai donc commencé à expérimenter.

Le code suivant fonctionne:

def a()
  puts "hello world"
end

some_hash = { 0 => a() }

some_hash[0]

Mais si je enrober dans une classe, il cesse de fonctionner:

class A

  @a = { 0 => a()}

  def a()
    puts "hello world"
  end


  def b()
    @a[0]
  end

end

d = A.new()

d.b()

Je ne vois pas pourquoi il devrait s'arrêter de travailler, quelqu'un peut-il suggérer comment le faire fonctionner?

OriginalL'auteur | 2009-07-01