AccueilActualités informatiqueLe langage de programmation Go 1.18 permet la programmation générique

Le langage de programmation Go 1.18 permet la programmation générique

L’équipe de développement de Go a publié la version 1.18 du langage de programmation initialement développé par Google. La plus grande nouveauté est sans doute l’introduction des génériques – les développeurs de Go ont dû attendre longtemps cette fonctionnalité, présente dans de nombreux autres langages de programmation. Selon un article de blog, les changements sont certes importants, mais il ne devrait pas y avoir de problèmes de rétrocompatibilité.

Sommaire

Les types de données génériques doivent permettre aux développeurs de partager du code et de créer des programmes plus facilement. La programmation générique permet d’écrire des fonctions et des structures de données dont certains types ne doivent être spécifiés que plus tard. Il est ainsi possible d’écrire une fonction qui opère sur une tranche de n’importe quel type de données. Le type de données réel n’est indiqué que lors de l’appel de la fonction. Il est également possible de définir une structure de données qui stocke des valeurs de n’importe quel type, le type réel à stocker n’étant indiqué que lors de la création d’une instance de la structure de données.

Dès le début de l’année 2021, après quelques tentatives antérieures, une proposition de modification du langage a été soumise, visant à ajouter à Go la prise en charge des paramètres de type pour les types et les fonctions et à permettre ainsi une forme de programmation générique. Cette proposition a déjà été mise en œuvre lors de la sortie de la première version bêta de Go 1.18 en décembre 2021. C’est désormais officiel : Go 1.18 introduit (enfin) les génériques. Parmi les nouveautés, on trouve par exemple le fait que la syntaxe pour les déclarations de fonctions et de types accepte désormais les paramètres de type. En outre, les fonctions et types paramétrés peuvent être instanciés en les faisant suivre d’une liste d’arguments de type entre crochets. La collection d’opérateurs et de signes de ponctuation a été élargie avec ~ a reçu un nouveau jeton.

Parmi les petites nouveautés, on trouve notamment la possibilité d’écrire des tests basés sur le fuzzing. Les entrées automatiques doivent ainsi être plus faciles à trouver, qui font planter les programmes ou renvoient des réponses non valables. Outre un nouveau mode Go Workspace qui doit permettre aux développeurs de travailler avec plusieurs modules Go en même temps, la mise à jour apporte go version -m une nouvelle commande.

Elle permettra à l’avenir d’enregistrer les détails du build. Ainsi, un programme peut utiliser les informations de son propre build avec debug.ReadBuildInfo mais aussi d’autres fichiers binaires avec le nouveau paquet debug/buildinfo. Selon le billet de blog, ce nouveau mode de fonctionnement est destiné à servir de base à tout outil qui doit créer un Software-Bill-of-Materials (SBOM) pour des fichiers binaires Go.

De plus amples informations sur Go 1.18 sont disponibles dans le billet sur le blog officiel de The Go.

Voir aussi

  • Go chez heise Téléchargement

Plus d'articles