Dans cet article, nous apprendrons comment contrôler l'exécution d'un programme golang en créant des boucles, des tests de condition ainsi que des évaluations multiples. Les instructions for, if et switch s'écrivent et fonctionnent de la même manière que dans les autres langages de développement. Peut-être à la différence qu'il n'est pas nécessaire d'utiliser des parenthèses. Sauf dans les cas où une ambiguïté est possible. Par exemple, dans le cas d'une conversion ou d'un littéral composite – cas que nous verrons en fin d'article.
Dans tous les cas, n'hésitez pas à modifier le code dans l'éditeur et à l'exécuter.
Dans l'exemple ci-dessous, nous pouvons nous faire la main avec les trois écritures possibles :
On note que l'on peut mettre fin à une boucle grâce au mot-clé break.
Le mot-clé for est aussi utilisé pour les canaux, mais c'est une autre histoire...
Le mot-clé if peut être associé au mot-clé else pour effectuer des embranchements conditionnels SI/SINON. Il est également possible de créer des structures plus complexes :
Une déclaration peut précéder immédiatement des embranchements conditionnels. Les variables qui y sont déclarées sont disponibles dans toutes les branches.
Il est possible de coder des évaluations de type SELON, mais, si l'exemple de base est comparable à beaucoup de langages, l'implémentation de golang est plus puissante. En effet, il est possible d'évaluer plusieurs expressions dans le même CAS en les séparant par une virgule. Tout comme l'expression évaluée dans chaque CAS peut ne pas être constante.
Le mot-clé default permet de créer un cas par défaut afin d'exécution des instructions lorsque tous les autres cas ne correspondent pas.
On peut utiliser le mot-clé switch afin de déterminer le type sous-jacent d'une interface.
Dans certains cas, on ne peut pas évaluer quel est le type sous-jacent, surtout dans le cas des nombres. bien entendu, si l'on avait écrit 12.0, l'ambiguïté aurait été levée et le type sous-jacent serait float64
Avant de commencer, disons tout de suite que ce cas de figure est très rare.
Une ambiguïté de compilation se pose quand un composite littéral utilisant la forme TypeName du LiteralType apparaît entre le mot-clé et l'accolade d'ouverture du bloc d'une instruction if, for ou switch, parce que les accolades entourant les expressions dans le littéral sont confondues avec celles qui introduisent le bloc d'instructions. Pour résoudre l'ambiguïté dans ce cas rare, le littéral composite doit figurer entre parenthèses.
if x == (T{a,b,c}[i]) { … } if (x == T{a,b,c}[i]) { … }
Une traduction du blog officiel de golang expliquant le mécanisme de la réflexion en Go. Lire »
Traduction d'un article du blog officiel expliquant comment échanger des données entre deux programmes golang grâce à un format natif Lire »
Traduction d'une partie des spécifications officielles du langage go, cet article explique comment go gère la mémoire. Lire »
Exemples d'utilisation du type chan et des go routines stateful et stateless Lire »
Cet article vous permettra de comprendre une des bases de tous les langages de programmation : Types, Valeurs, Variables et constantes en go Lire »
Soyez le premier à commenter cet article
Tous les commentaires sont soumis à modération. Les balises HTML sont pour la plupart autorisées. Les liens contextuels et intéressants sont en follow.