Version du 2 août 2023
Introduction
Il s'agit du manuel de référence du langage de programmation Go. La version pré-Go1.18, sans génériques, peut être trouvée ici. Pour plus d'informations et d'autres documents, consultez le site golang.org.
Go est un langage polyvalent conçu en gardant à l'esprit la programmation système. Il est fortement typé et dispose d'une collecte de déchets automatique, ainsi que d'un support explicite pour la programmation concurrente. Les programmes sont construits à partir de packages, dont les propriétés permettent une gestion efficace des dépendances.
La syntaxe est compacte et simple à analyser, ce qui permet une analyse facile par des outils automatiques tels que les environnements de développement intégrés.
Notation
La syntaxe est spécifiée en utilisant unevariantede la Forme étendue de la notation de Backus-Naur (EBNF) :
Syntaxe = { Production } . Production = nom_de_production "=" [ Expression ] "." . Expression = Terme { "|" Terme } . Terme = Facteur { Facteur } . Facteur = nom_de_production | jeton [ "…" jeton ] | Groupe | Option | Répétition . Groupe = "(" Expression ")" . Option = "[" Expression "]" . Répétition = "{" Expression "}" .
Les productions sont des expressions construites à partir de termes et des opérateurs suivants, par ordre croissant de priorité :
| alternance () regroupement [] option (0 ou 1 fois) {} répétition (0 à n fois)
Les noms de production en minuscules sont utilisés pour identifier les jetons lexicaux (terminaux). Les non-terminaux sont en CamelCase. Les jetons lexicaux sont encadrés par des guillemets doubles ""
ou des backquotes ``
.
Le formulaire a … b
représente l'ensemble des caractères de a
à b
comme des alternatives. L'ellipse horizontale …
est également utilisée ailleurs dans la spécification pour indiquer informellement diverses énumérations ou extraits de code qui ne sont pas spécifiés plus en détail. Le caractère …
(par opposition aux trois caractères ...
) n'est pas un jeton du langage Go.