{{tag>dev go golang}}
Notes et transcriptions du cours "[[https://www.coursera.org/learn/golang-getting-started/home/welcome|Démarrer avec Go]]" proposée par
[[https://uci.edu/|University of California, Irvine]] disponible sur la plateforme [[https://www.coursera.org/|coursera]].
====== Variables ======
Abordons les variables et parlons un peu des variables présentes dans tous les langages de haut niveau et voyons comment Go l'implémente. Cela ressemble beaucoup à ce que vous avez vu dans d'autres langues, certaines choses sont un peu différentes.
===== Nommage =====
Vous avez besoin de noms pour les variables, pour les fonctions, vous avez besoin de noms pour faire référence à des éléments de votre code.
Les noms doivent commencer par une lettre. Ils peuvent comporter n'importe quel nombre de lettres, de chiffres et de traits de soulignement, les noms sont sensible à la casse en Go et vous ne pouvez pas utiliser de mots clés.
Il existe une liste de mots clés que vous pouvez rechercher sur Google comme ''if'', ''case'', ''package'' etc, vous ne pouvez pas les utiliser comme noms les mots clés du langage.
Les variables sont essentiellement des données stockées quelque part en mémoire. Et chaque variable a un nom et un type. Toutes les variables doivent donc avoir une déclaration, spécifiant le nom et le type de la variable.
Voici donc une déclaration de variable très simple.
//mot clé nom type
var x int
**var** est le mot clé pour la déclaration d'une variable. Après, on a le nom, ma variable porte le nom "x", puis j'ai le type ''int'' (integer = entier).
Le compilateur doit savoir de quel type de variable il s'agit afin de connaître l'espace à allouer, quelles opérations peuvent être effectuées.
Vous pouvez en déclarer plusieurs sur la même ligne si vous le souhaitez, simplement en les séparant par des virgules.
var x,y int
===== Les types de variables =====
Le type définit les valeurs qu'une variable peut prendre et les opérations qui peuvent être effectuées sur cette variable.
Ainsi, pour les types courants, les types de base on a :
* ''int'' les entiers ;
* ''float'' les virgules flottantes ;
* ''Strings'' les chaînes de caractères.
Pour les entiers ( type ''int''), les valeurs qu'ils peuvent prendre ne sont que des valeurs entières (sans élément décimal ou fractionnaire) et les opérations que vous pouvez effectuer sont arithmétiques entières, addition, soustraction, multiplication etc
Pour les nombres décimaux ( type ''float''), leurs valeurs peuvent être décimales ou fractionnaires. Vous avez là aussi un ensemble d'opérations, des opérations arithmétiques. En fait, elles ressemblent superficiellement aux opérations entières : addition, soustraction, division, mais elles sont en fait être implémentées avec un matériel différent. En effet la division à virgule flottante est nettement plus compliquée que la division entière : Il existe donc du matériel dédié uniquement pour diviser les décimaux. Nous n'avons pas besoin de le savoir en tant que programmeurs, mais la machine doit savoir à quelle opération appliquer.
Enfin les chaînes de caractères (type ''Strings'') Donc, les chaînes sont des séquence d' octets codées en Unicode . Nous y reviendrons plus tard mais retenons qu'il s'agit d'une séquence d'octets. Les opérations que vous pouvez effectuer sur des chaînes sont nombreuses : comparaison, recherche, concaténation, classement etc.
C'est bien le type qui spécifie les valeurs et les opérations possibles. Il précise quelles données la variable peut contenir sa taille. Parce que vous devez savoir combien d'espace mémoire vous devrez allouer pour cela. Le compilateur doit savoir cela et aussi quelles opérations peuvent être effectuées dessus.
Le compilateur devra lire ces opérations présentes dans le code source et les compiler (traduire) en instructions en code machine adaptées à la plate-forme matérielle cible, et ces instructions en code machine peuvent être différentes selon le type.
C'est pourquoi le compilateur doit connaître le type afin de savoir comment faire la compilation, comment le convertir en code machine.
[[135_outil_go|◁ Précédent]] |
[[000_start|⌂ Retour au sommaire ]] |
[[145_initialisation_variables|Suivant ▷ ]]