Macros in Go : une histoire de substitutions de symboles
Les macros, un incontournable dans de nombreux langages de programmation, offrent un moyen pratique de définir des noms symboliques qui se développent lors de la compilation. Cependant, Go adopte une approche différente. Bien qu'il évite les macros, il adopte deux mécanismes alternatifs :
1. Méta-programmation via la génération de code
Cette technique consiste à générer du code au moment de l'exécution en fonction de configurations ou de données définies par l'utilisateur. Il permet des programmes très dynamiques et flexibles.
2. Substitutions de symboles au moment de la liaison
Ce mécanisme permet le remplacement de symboles spécifiques dans le segment de données en lecture seule du programme. Il offre un moyen contrôlé et prévisible d'ajuster les constantes au moment de la construction.
Pour le problème en question, cette dernière approche s'aligne mieux avec l'utilisation de macros #define en C . Voici comment l'implémenter dans Go :
Utilisation des substitutions de symboles
Dans n'importe quel package pratique, définissez une constante de chaîne que vous souhaitez modifier au moment de l'exécution, telle que Bar dans le package foo.
Ensuite, lors de la compilation, passez une option -ldflags au go build ou go install command :
$ go install -ldflags='-X foo.Bar="my super cool string"'
Cela remplacera la constante foo.Bar dans le binaire résultant par la valeur "ma chaîne super cool" au moment de la liaison. Cette valeur sera accessible au code du programme.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!