Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

hook?

1 réponse
Avatar
Mihamina Rakotomandimby
Bonjour, (suivi sur fr.comp.developpement)

Dans Emacs et certains exemples de code dans divers langage que j'ai
rencontré, je vois des "hook".
Qu'est-ce que c'est que les "hook"?

Merci.

1 réponse

Avatar
Alain Ketterlin
Mihamina Rakotomandimby writes:

Dans Emacs et certains exemples de code dans divers langage que j'ai
rencontré, je vois des "hook".
Qu'est-ce que c'est que les "hook"?



Ca veut dire crochet, ça permet de d'indiquer des fonctions qui seront
appelées par une autre fonction (tu accroches des fonctions à la
fonction cible). Par exemple, find-file-hook contient une liste de
fonctions appelées après que find-file a fait son travail.

Bien sûr, les détails de l'utilisation dépendent de ce que le langage
utilisé appelle une "fonction". En Lisp (et dans les langages
fonctionnels en général), c'est facile d'utiliser des fonctions comme
des variables, voire d'en créer à la volée etc. Dans d'autres
langages, c'est plus ou moins facile : par exemple, en Java, tu as un
mécanisme similaire dans Swing, mais ça s'appelle des listeners, et ce
sont des objets implémentant une certaine interface, c'est-à-dire
définissant une certaine méthode qui sera appelée au moment de
l'activation du "hook" (l'appel de la dite méthode sur chaque
listener). Si jamais le hook a besoin de données (hors celle transmise
par le protocole d'appel), en Java tu les mettrais dans l'objet
listener, en Lisp and co. tu utiliserais une fermeture ("closure").

-- Alain.

P/S: j'ignore le follow-up parce que mon serveur ne connait pas
fr.comp.developpement