Interfaces Go : Vérification statique à la compilation, envoi dynamique à l’exécution
Les interfaces Go, mélange unique de vérification statique des types et d’envoi dynamique, constituent sans doute leur fonctionnalité la plus intéressante. Cet article explore en détail l’implémentation des valeurs d’interface dans les compilateurs gc de Go, couvrant leur représentation en mémoire, la génération et la mise en cache de la table d’interface (itable), et les optimisations de mémoire pour différentes tailles de données. À l’aide d’exemples de code et d’illustrations, l’auteur explique clairement comment Go assure la sécurité des types à la compilation et des appels d’interface efficaces à l’exécution. Des comparações avec les implémentations d’interfaces d’autres langages mettent en évidence l’approche distinctive de Go.