Je vois deux solutions 'simple' une avec send (on envoie un message à l'objet, c'est la façon smalltalk d'appeler une methode il me semble) :
my_function="mi"
send(my_function,1,2,3,4);
my_function=:log
send(my_function,1,2,3,4)
Ou avec method et call cité plus haut :
my_function = method(:mi)
my_function.call(1,2,3,4)
Dans les deux cas on peu utiliser une chaine de carractere ou un symbole (:mi ou :log). J'imagine qu'avec un symbole le code doit etre plus performant, cela dit je n'en suis pas sur.
Comme en ruby la ligne de code "my_function(1,2,3,4)" serais equivalent à "self.send(:my_function,1,2,3,4)" je ne crois pas qu'il existe de solution où l'on puisse appeler "my_function(1,2,3,4)" comme on le ferais avec un pointeur de fonction en C par exemple.
# send et method/call
Posté par Arnaud Taffanel . En réponse au message Pointeur de fonction ?. Évalué à 2.
my_function="mi"
send(my_function,1,2,3,4);
my_function=:log
send(my_function,1,2,3,4)
Ou avec method et call cité plus haut :
my_function = method(:mi)
my_function.call(1,2,3,4)
my_function = method("log")
my_function.call(1,2,3,4)
Dans les deux cas on peu utiliser une chaine de carractere ou un symbole (:mi ou :log). J'imagine qu'avec un symbole le code doit etre plus performant, cela dit je n'en suis pas sur.
Comme en ruby la ligne de code "my_function(1,2,3,4)" serais equivalent à "self.send(:my_function,1,2,3,4)" je ne crois pas qu'il existe de solution où l'on puisse appeler "my_function(1,2,3,4)" comme on le ferais avec un pointeur de fonction en C par exemple.
Cordialement.