Outils pour utilisateurs

Outils du site


cours:informatique:dev:golang:demarrer_avec_go:245_constantes

Notes et transcriptions du cours “Démarrer avec Go” proposée par University of California, Irvine disponible sur la plateforme coursera.

Les constantes

Une constante est une expression dont la valeur est connue au moment de la compilation, elle est connue et ne change jamais.

Ainsi, vous pouvez simplement déclarer une variable avec une certaine valeur qu'elle conservera tant que le programme est en cours d'exécution.

Le type est déduit du côté droit de l'assignation. Par exemple :

  1. const x = 1.3 //constante de type float
  2.  
  3. const (
  4. y = 4 //constante entière
  5. z = "Hi" //chaine de caractères
  6. )

Ci dessus on a écrit const x = 1.3 (ligne 1). L'affectation de la valeur à virgule flottante à x permet au compilateur de déduire que x est de type float. Le compilateur s’assurera que la valeur est maintenue constante et ne peut pas être modifiée.

Vous pouvez en attribuer plusieurs à la fois (lignes 3 à 6). Vous pouvez donner une longue liste si vous le souhaitez.

La fonction iota()

iota() est une fonction utilisée pour générer des constantes. Elle génère un ensemble de constantes connexes mais distinctes. Alors, quand l'utiliser ? Vous l'utilisez lorsque vous devez représenter une propriété ayant plusieurs valeurs possibles distinctes. Donc, cela est également connu sous le nom de “one-hot”.

Par exemple on souhaite qu'une variable puisse prendre une valeur parmi cinq possibles. Vous voulez donc que chacune de ces cinq valeurs soit une constante distincte. Par exemple les jours de la semaine. Nous avons sept jours dans la semaine et on veut que chaque jour de la semaine ait une valeur constante. On veut donc définir une constante pour chaque jour de la semaine (lundi, mardi, mercredi, etc) on veut qu'elles soient toutes différentes mais vous ne vous souciez pas particulièrement de la valeur de chaque constante. Tant que le lundi est différent de mardi, qui est différent de mercredi etc.

Les mois de l'année, c'est pareil… L'essentiel à propos de ces constantes est donc que lorsque vous utilisez iota pour générer ces constantes, les constantes doivent être différentes, mais leur valeur réelle n'a pas importante.

Donc, si j'ai “lundi”, “mardi” et “mercredi” comme constantes, peu importe si la constante “lundi” est associé à la valeur 500, 5000 ou 2. Tant que “lundi” n'a pas la même valeur que “mardi”, qui n'est pas le même que “mercredi” etc.

C'est dans ce genre de situation que vous pouvez utiliser iota. Lorsque vous devez représenter un ensemble de constantes avec des valeurs différentes, peu importe leur valeur exacte, mais tant qu'il s'agit de constantes distinctes, vous pouvez utiliser iota.

C'est équivalent au type énuméré présent dans le langage C. En GO on a une façon plus synthétique de définir ces ensembles de constantes.

  1. type Grades int //alias sur le type int
  2.  
  3. const (
  4. A Grades = iota
  5. B
  6. C
  7. D
  8. E
  9. F
  10. )

Voici donc un petit exemple de la façon dont vous pourriez définir quelque chose en utilisant iota().

Imaginons que je souhaite représenter des notes. Donc, je crée un type appelé Grades. Je souhaite représenter mes notes sous forme de nombres entiers. Je veux avoir ces cinq grades A, B, C, D et F. Je sais que je veux que A, B, C, D et F soient tous des grades différents.

Ils doivent donc être représentés par des nombres entiers différents. Mais je ne me soucie pas particulièrement des nombres entiers par lesquels ils sont représentés. Je veux juste que A soit différent de B, C, D et F. Donc, je déclare les constantes A, B, C, D et F.

Pour la première, A, on donne le type Grades (qui est en fait un int, car Grades est un alias pour int). On affecte le retour de iota() (ligne 4).

Pour B, C, D et F, je n'ai pas besoin de le répéter. Vous pouvez voir qu'on écrit simplement B, C, D et F. On ne donne pas le type, on écrt plus iota, rien de tout ça.

On empile simplement les constantes, c'est que iota attribuera automatiquement une valeur à la première constante, puis il en attribuera une différente à la suivante, une autre à la suivante et ainsi de suite.

En fait, iota assigne des valeurs à partir de un. Donc, A vaudrait 1, B 2, C 3, mais vous ne devriez pas vous fier à cela car l'idée qui sous-tend l'utilisation de l'iota, c'est que peu vous importe quelles sont les valeurs réelles des constantes. Vous voulez simplement que les valeurs constantes soient différentes les unes des autres.

Il est vrai que l'implémentation actuelle distribue les valeurs par incréments, mais vous ne pouvez pas garantir que cela ne changera pas à l'avenir. Tout ce que vous savez, c'est que les valeurs attribuées seront différentes.

◁ Précédent | ⌂ Retour au sommaire | Suivant

cours/informatique/dev/golang/demarrer_avec_go/245_constantes.txt · Dernière modification : 2024/05/15 20:13 de yoann