Je travaille sur un problème dans le livre de Chris Pine Learn to Program. J'ai défini une classe Pet
, avec quelques méthodes d'instance. En dehors de la définition de la classe, j'essaie de construire une méthode qui prendra une chaîne et une instance de la classe Pet
et exécutera la méthode d'instance appropriée.Ruby: utilisation d'un hachage pour accéder à des méthodes d'instance
def dispatch(command, pet)
dispatches = {'feed' => pet.feed,
'walk' => pet.walk,
'put to bed' => pet.putToBed,
'rock' => pet.rock,
'toss' => pet.toss}
dispatches[command]
end
Lorsque la méthode dispatch
fonctionne, cependant, il exécute toutes les méthodes d'instance qui apparaissent dans le hachage, pas seulement celle qui correspond à command
. Ils s'exécutent dans l'ordre où ils apparaissent dans le code, et avant même d'atteindre la ligne dispatches[command]
.
Qu'est-ce que je fais mal ici?
donner le corps de la classe aussi .. de sorte que nous puissions exécuter –