La différence entre les directives //go:build et //build
La directive //go:build est la nouvelle directive de compilation conditionnelle introduit dans Go 1.17, destiné à remplacer la directive // build. Si les deux directives permettent de préciser les conditions dans lesquelles un fichier doit être inclus dans le package, //go:build propose plusieurs améliorations clés :
-
Cohérence :Le // La syntaxe go:build est cohérente avec d'autres directives et pragmas Go existants, tels que //go:generate.
-
Expressions améliorées : //go:build prend en charge les expressions booléennes standard (par exemple, //go:build foo && bar), tandis que // build utilisait une syntaxe moins intuitive pour AND (virgules) et OR (espaces).
-
Formatage du code : La directive //go:build est automatiquement formatée par gofmt. Cela évite les erreurs courantes, comme ne pas laisser de ligne vide entre la directive et l'instruction du package.
Go 1.18 a soulevé //go:build comme directive préférée, avec des plans pour supprimer progressivement // build lignes. La transition entre les deux directives est gérée comme suit :
- Dans Go 1.18 et versions ultérieures, //go:build est la directive de contrainte de construction principale.
- Si un fichier ne dispose pas d'un // go:build, toutes les directives // build s'appliqueront toujours.
- Si un fichier contient à la fois les directives //go:build et // build, //go:build sera considéré comme la source de vérité, et le gouvernement mettra à jour // construira pour correspondre.
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!