En ruby désigner une fonction reviens a l'appeler, tu ne peut donc pas passer directement une fonction comme tu le ferait en python en ométant les parenthèses, pour la simple et bonne raison que les parenthèses sont optionnelles.
Pour obtenir le même effet il faut utiliser la "buit-in" method, et ensuite pour l'appeler il faut utiliser la méthode call.
Mais cet exemple que ce soit en python ou en ruby est a éviter car si j'ai bien suivi le nom de la fonction viens d'une saisie utilisateur. Il vaut donc mieux isoler les fonctions disponibles dans un espace de nom (une classe) car si par un hasard soudain func_name == 'exit' ben ...
[^] # Re: .call
Posté par Jean B . En réponse au message Pointeur de fonction ?. Évalué à 4.
Pour obtenir le même effet il faut utiliser la "buit-in" method, et ensuite pour l'appeler il faut utiliser la méthode call.
#python
func = locals()[func_name]
func(1, 2, 3)
#ruby
func = method(func_name)
func.call(1, 2 , 3)
Mais cet exemple que ce soit en python ou en ruby est a éviter car si j'ai bien suivi le nom de la fonction viens d'une saisie utilisateur. Il vaut donc mieux isoler les fonctions disponibles dans un espace de nom (une classe) car si par un hasard soudain func_name == 'exit' ben ...