Pourquoi « any » provoque-t-il des erreurs de « nom non déclaré » lors de la mise à niveau vers Go 1.18 ?
Lors de la mise à niveau de votre projet Go vers la version 1.18 et en essayant d'exploiter le nouveau type "any" en remplacement de "interface{}", vous risquez de rencontrer une erreur similaire à :
undeclared name: any (requires version go1.18 or later)
Cette erreur survient car le fichier "go.mod" associé à votre projet spécifie une version Go inférieure à 1.18. Le type "any" a été introduit dans Go 1.18 et les modules spécifiant des versions antérieures ne sont pas éligibles pour l'utiliser.
Résolution
Pour résoudre ce problème, mettez à jour le " go.mod" pour utiliser Go version 1.18 ou supérieure. Par exemple, modifiez ce qui suit :
module example.com/foo go 1.17
en :
module example.com/foo go 1.18
Justification
Le fichier "go.mod" de chaque module contrôle le Version linguistique Go utilisée lors de la compilation, permettant l'adoption progressive de nouvelles fonctionnalités par les auteurs de modules à leur discrétion. Comme expliqué dans le [document de conception des modifications du langage Go](https://go.dev/design/go-version-check), cela garantit la compatibilité entre les composants et les modules.
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!