Maison  >  Article  >  développement back-end  >  Le compilateur go compilera-t-il des packages qui ne seront jamais utilisés dans main ?

Le compilateur go compilera-t-il des packages qui ne seront jamais utilisés dans main ?

王林
王林avant
2024-02-09 14:27:341088parcourir

Le compilateur go compilera-t-il des packages qui ne seront jamais utilisés dans main ?

L'éditeur de PHP, Strawberry, est heureux de répondre à votre question de savoir si le compilateur go compilera des packages qui n'ont jamais été utilisés dans main. En langage Go, le compilateur ne compilera pas les packages inutilisés. En effet, le concept de conception du langage Go doit être simple et efficace, et ne fera pas perdre de temps ni de ressources à compiler du code inutilisé. Par conséquent, si d'autres packages sont introduits dans le package principal, mais que leurs fonctions ou variables ne sont pas utilisées, le compilateur ignorera ces packages inutilisés, améliorant ainsi la vitesse de compilation et l'efficacité d'exécution du programme.

Contenu de la question

Si j'ai un module go, qui contient trois packages A, B, C, etc. Dans main.go et toutes ses importations, seuls les packages A et B ont été utilisés. Ma question est la suivante : go build Le binaire généré contient-il du code du package C ?

Solution de contournement

La version binaire ne contiendra que des fermetures transitives pour tous les symboles référencés depuis main. Cela inclura uniquement les fonctions et les données du package importé, ainsi que toutes les méthodes des types utilisés. Par conséquent, s’il y a une fonction dans le package qui n’est jamais utilisée, elle n’apparaîtra pas dans le binaire. Cependant, si vous utilisez un type de données avec des méthodes inutilisées, ces méthodes seront dans le fichier binaire.

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer