Comment ajouter des balises de construction Golang

Comment Ajouter Des Balises De Construction Golang



Les balises de construction dans Go sont une fonctionnalité puissante qui nous permet d'inclure ou d'exclure conditionnellement un code particulier pendant le processus de construction en fonction de contraintes de construction spécifiques. Cette flexibilité nous permet de créer des versions spécifiques à la plate-forme pour différents systèmes d'exploitation, architectures ou autres exigences spécifiques à l'environnement. Les balises de construction sont des commentaires spéciaux ajoutés au début d'un fichier source, juste au-dessus de la déclaration du package. Ces balises fournissent des instructions au système de build Go sur la façon de gérer le code de ce fichier pendant le processus de compilation.

Exemple 1 : ajouter la balise Golang Build pour le système Linux

Pour cibler le système d'exploitation Linux, nous pouvons ajouter la balise de build « // +build linux ».

//va construire Linux

// +construire Linux

emballer principal

importer 'fmt'

fonction principal () {

fmt . Imprimer ( 'Bonjour, exemple de système Linux' )

}

Ici, nous définissons les contraintes de construction dans Go qui spécifient que le code ne doit être construit que si le système cible est Linux. Après cela, nous définissons le package et importons l'instruction requise pour le code. Ensuite, nous entrons dans la méthode main() où nous imprimons le message en utilisant l'appel « Println » du package « fmt ».







Ainsi, le message s'affiche avec succès sur la console pour le système d'exploitation Linux :





Exemple 2 : ajouter la balise Golang Build pour le système Windows

Lorsque nous voulons simplement que le code s'exécute sur la plateforme Windows, nous utilisons la balise de build « // +build windows » au début du fichier. À partir de là, nous pouvons nous assurer que le code n'est incorporé dans la version que lorsque Windows est la plate-forme prévue.





// +construire les fenêtres

emballer principal

importer 'fmt'

fonction principal () {

fmt . Imprimer ( 'Bonjour, exemple Windows !' )

}

Ici, nous utilisons la contrainte de construction « // +build windows » pour garantir que le code n'est compilé et exécuté que lors de la construction pour la plate-forme Windows. Après cela, nous incluons le package nécessaire pour le code avec le package et le modificateur d'importation. Vient ensuite la fonction main() qui utilise la fonction println() pour imprimer l'instruction lors de la construction des balises de la fenêtre dans Golang.

Lorsque nous construisons et exécutons ce programme sur un système Windows, il affiche le message « Bonjour, exemple Windows ! » message à la console. Notez que le programme ne sera pas construit ou exécuté sur d'autres systèmes d'exploitation en raison de la contrainte de construction.



Exemple 3 : ajouter la balise Golang Build pour le système non Windows

À l’inverse, si nous voulons exclure le code lors de la construction pour Windows, vous pouvez utiliser le « ! » point d'exclamation avec la balise build.

// +construire !windows

emballer principal

importer 'fmt'

fonction principal () {

fmt . Imprimer ( 'Bonjour, sauf Windows !' )

}

Ici, nous construisons une directive de contrainte qui indique que le code doit être construit et exécuté sur des plateformes autres que Windows. Le point d'exclamation (!) avant Windows indique que ce code doit être inclus pour toutes les plates-formes à l'exception de Windows. Ensuite, nous procédons avec le même programme que dans la fonction précédente où nous ajoutons d'abord les packages et appelons la fonction main() pour exécuter le message qui est passé dans la fonction println().

Ainsi, la sortie génère le message sur les consoles du système d'exploitation. Gardez à l’esprit qu’il ne s’exécutera pas sur le système d’exploitation Windows en raison de la contrainte de build :

Exemple 4 : Ajouter la balise Golang Build avec la logique OR

Pour inclure le code lors du ciblage de Windows OU Linux, nous pouvons utiliser la balise de build « // +build windows Linux ».

// +construire Windows Linux

emballer principal

importer 'fmt'

fonction principal () {

fmt . Imprimer ( 'Hé, utilisateurs Windows ou Linux' )

}

Ici, nous appliquons la contrainte de construction avec le OU logique qui est destiné à être construit pour les systèmes d'exploitation Windows et Linux. La ligne « // +build windows Linux » précise que ce fichier doit être inclus dans la build lorsque la plateforme cible est Windows ou Linux. Ensuite, nous importons le package « fmt » de la bibliothèque standard Go qui fournit les fonctionnalités d’entrée et de sortie de base. Dans la fonction principale, nous imprimons l'instruction de chaîne « Hé, utilisateurs Windows ou Linux » à l'aide de la fonction Println() du package « fmt ».

Par conséquent, le résultat est récupéré ci-dessous. Le même message est généré que l'on utilise le système d'exploitation Windows ou Linux :

Exemple 5 : Ajouter la balise Golang Build avec la logique AND

Nous pouvons spécifier plusieurs balises de build pour créer des conditions plus complexes. La commande « // +build windows,linux » peut être utilisée pour générer un code pour Linux et Windows.

// +construire des fenêtres,386

emballer principal

importer 'fmt'

fonction principal () {

fmt . Imprimer ( 'C'est Windows 32 bits' )

}

Ici, la contrainte de build définie est « // +build windows,386 » qui spécifie que le fichier Go doit être inclus dans la build lorsque la plate-forme cible est un Windows 32 bits. Notez que nous utilisons une virgule « », entre Windows et 386 qui fait office d'opérateur logique ET. Cela signifie que les deux conditions doivent être remplies pour que le code soit inclus dans la build.

Ensuite, comme dans l'exemple précédent, nous importons le package « fmt » de la bibliothèque standard Go pour utiliser la fonction Println() pour la sortie. Nous avons la fonction main() du programme où l'instruction est passée en argument à la fonction println().

Lorsque nous construisons et exécutons ce programme sur un système Windows 32 bits, il affiche le message spécifié en sortie. Cependant, si nous essayons de le construire et de l'exécuter sur un système d'exploitation ou une architecture différente, il ne sera pas inclus dans la construction :

Exemple 6 : ajouter la balise Golang Build pour une fonction spécifique

De plus, les balises de build peuvent également être appliquées à des fonctions spécifiques au sein d'un fichier. En raison des contraintes de construction, nous pouvons désormais inclure ou supprimer conditionnellement des fonctions spécifiques.

emballer principal

importer 'fmt'

fonction principal () {

fmt . Imprimer ( 'Hé, profitez-en!' )

imprimerWindowsMessage ()

}

// +construire les fenêtres

fonction imprimerWindowsMessage () {

fmt . Imprimer ( 'Bonjour du système d'exploitation Windows' )

}

Ici, nous passons maintenant à la méthode main() qui utilise la méthode Println() fournie par le package « fmt » pour imprimer le message au début. Ensuite, nous déployons la fonction printWindowsMessage() sous la fonction main() et spécifions la contrainte de construction « // +build windows ». Cela indique que la fonction n'est incluse dans la version que lorsque la plate-forme cible est Windows.

Enfin, nous définissons la fonction printWindowsMessage() pour imprimer le message spécifié « Bonjour du système d'exploitation Windows » à l'aide de la fonction Println().

Ainsi, la sortie est récupérée et affiche à la fois le message général et le message spécifique à la plateforme. Notez que si nous le construisons et l'exécutons sur un système d'exploitation différent, la fonction printWindowsMessage() ne sera pas incluse dans la construction, et seul le message général sera affiché :

Conclusion

L'ajout de balises de build dans Go offre la possibilité de personnaliser l'inclusion du code pendant le processus de build. En tirant parti des balises de build, nous pouvons créer des builds spécifiques à la plate-forme, optimiser le code pour différentes architectures et même inclure de manière conditionnelle des fonctions ou des fonctionnalités spécifiques.