introduction
Le programme «Hello, World!» Est une tradition classique et consacrée de la programmation informatique. C’est un premier programme simple et complet pour les débutants, et un bon moyen de s’assurer que votre environnement est correctement configuré.
Ce tutoriel vous guidera à travers la création de ce programme dans Go. Toutefois, pour rendre le programme plus intéressant, vous allez modifier le programme traditionnel «Hello, World!» Afin qu’il demande à l’utilisateur son nom. Vous utiliserez ensuite le nom dans le message d'accueil. Lorsque vous aurez terminé le didacticiel, vous aurez un programme qui ressemblera à ceci lorsque vous l'exécuterez:
OutputPlease enter your name.
Sammy
Hello, Sammy! I'm Go!
Conditions préalables
Avant de commencer ce didacticiel, vous aurez besoin d'unlocal Go development environment configuré sur votre ordinateur. Vous pouvez le configurer en suivant l'un de ces tutoriels:
[[step-1 -—- writing-the-basic- "hello-world -" - program]] == Étape 1 - Ecrire le Basic "Hello, World!" Programme
Pour écrire le "Hello, World!" programme, ouvrez un éditeur de texte en ligne de commande tel quenano
et créez un nouveau fichier:
nano hello.go
Une fois le fichier texte ouvert dans la fenêtre du terminal, vous tapez votre programme:
hello.go
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
Décomposons les différents composants du code.
package
est un Gokeyword qui définit à quel groupe de code appartient ce fichier. Il ne peut y avoir qu'un seul package par dossier, et chaque fichier.go
doit déclarer le même nom de package en haut de son fichier. Dans cet exemple, le code appartient au packagemain
.
import
est un Gokeyword qui indique au compilateur Go les autres packages que vous souhaitez utiliser dans ce fichier. Ici, vous importez le packagefmt
fourni avec la bibliothèque standard. Le packagefmt
fournit des fonctions de formatage et d'impression qui peuvent être utiles lors du développement.
fmt.Println
est un Gofunction, trouvé dans le packagefmt
, qui indique à l'ordinateur d'imprimer du texte à l'écran.
Vous suivez la fonctionfmt.Println
par une séquence de caractères, comme"Hello, World!"
, entre guillemets. Tous les caractères entre guillemets sont appelésstring. La fonctionfmt.Println
imprimera cette chaîne à l'écran lorsque le programme s'exécutera.
Enregistrez et quitteznano
en tapantCTRL + X
, lorsque vous êtes invité à enregistrer le fichier, appuyez surY
.
Maintenant, vous pouvez essayer votre programme.
[[step-2 -—- running-a-go-program]] == Étape 2 - Exécution d'un programme Go
Avec votre programme «Hello, World!» Écrit, vous êtes prêt à exécuter le programme. Vous utiliserez la commandego
, suivie du nom du fichier que vous venez de créer.
go run hello.go
Le programme s'exécutera et affichera cette sortie:
OutputHello, World!
Voyons ce qui s’est réellement passé.
Les programmes Go doivent compiler avant d’être exécutés. Lorsque vous appelezgo run
avec le nom d'un fichier, dans ce cashello.go
, la commandego
feracompile l'application puis exécutera le binaire résultant. Pour les programmes écrits dans les langages de programmationcompiled, un compilateur prendra le code source d'un programme et générera un autre type de code de niveau inférieur (tel que le code machine) pour produire un programme exécutable.
Les applications Go nécessitent un packagemain
et exactement la fonctiononemain()
qui sert de point d'entrée pour l'application. La fonctionmain
ne prend aucun argument et ne renvoie aucune valeur. Au lieu de cela, il indique au compilateur Go que le package doit être compilé en tant que package exécutable.
Une fois compilé, le code s'exécute en entrant la fonctionmain()
dans le packagemain
. Il exécute la lignefmt.Println("Hello, World!")
parcalling la fonctionfmt.Println
. La valeur de chaîne deHello, World!
est alorspassed pour la fonction. Dans cet exemple, la chaîneHello, World!
est également appeléeargument car il s'agit d'une valeur transmise à une méthode.
Les guillemets qui se trouvent de chaque côté deHello, World!
ne sont pas imprimés à l'écran car vous les utilisez pour indiquer à Go le début et la fin de votre chaîne.
Au cours de cette étape, vous avez créé un programme de travail «Hello, World!» Avec Go. Dans l'étape suivante, vous allez explorer comment rendre le programme plus interactif.
[[step-3 -—- prompting-for-user-input]] == Étape 3 - Demande de saisie utilisateur
Chaque fois que vous exécutez votre programme, il produit le même résultat. Dans cette étape, vous pouvez ajouter à votre programme pour demander à l'utilisateur son nom. Vous utiliserez ensuite leur nom dans la sortie.
Au lieu de modifier votre programme existant, créez un nouveau programme appelégreeting.go
avec l'éditeurnano
:
nano greeting.go
Tout d'abord, ajoutez ce code, qui invite l'utilisateur à entrer son nom:
greeting.go
package main
import (
"fmt"
)
func main() {
fmt.Println("Please enter your name.")
}
Une fois de plus, vous utilisez la fonctionfmt.Println
pour imprimer du texte à l'écran.
Ajoutez maintenant la ligne en surbrillance pour stocker les entrées de l’utilisateur:
greeting.go
package main
import (
"fmt"
)
func main() {
fmt.Println("Please enter your name.")
var name string
}
La lignevar name string
créera une nouvelle variable en utilisant lesvar
keyword. Vous nommez la variablename
, et elle sera de typestring
.
Ajoutez ensuite la ligne en surbrillance pour capturer la saisie de l’utilisateur:
greeting.go
package main
import (
"fmt"
)
func main() {
fmt.Println("Please enter your name.")
var name string
fmt.Scanln(&name)
}
La méthodefmt.Scanln
indique à l'ordinateur d'attendre une entrée du clavier se terminant par une nouvelle ligne ou un caractère (
). Cela met le programme en pause, permettant à l'utilisateur de saisir le texte de son choix. Le programme continuera lorsque l'utilisateur appuiera sur la toucheENTER
de son clavier. Toutes les frappes, y compris la toucheENTER
, sont ensuite capturées et converties en une chaîne de caractères.
Vous voulez utiliser ces caractères dans la sortie de votre programme, donc vous enregistrez ces caractères parwriting eux dans la chaînevariable appeléename
. Go stocke cette chaîne dans la mémoire de votre ordinateur jusqu'à la fin du programme.
Enfin, ajoutez la ligne en surbrillance suivante dans votre programme pour imprimer le résultat:
greeting.go
package main
import (
"fmt"
)
func main() {
fmt.Println("Please enter your name.")
var name string
fmt.Scanln(&name)
fmt.Printf("Hi, %s! I'm Go!", name)
}
Cette fois, au lieu d'utiliser à nouveau la méthodefmt.Println
, vous utilisezfmt.Printf
. La fonctionfmt.Printf
prend une chaîne, et en utilisant l'impression spécialeverbs, (%s
), elle injecte la valeur dename
dans la chaîne. Vous faites cela parce que Go ne prend pas en chargestring interpolation, ce qui vous permettrait de prendre la valeur attribuée à une variable et de la placer dans une chaîne.
Enregistrez et quitteznano
en appuyant surCTRL + X
, puis appuyez surY
lorsque vous êtes invité à enregistrer le fichier.
Maintenant, lancez le programme. Vous serez invité à entrer votre nom, alors entrez-le et appuyez surENTER
. La sortie peut ne pas être exactement celle que vous attendez:
OutputPlease enter your name.
Sammy
Hi, Sammy
! I'm Go!
Au lieu deHi, Sammy! I'm Go!
, il y a un saut de ligne juste après le nom.
Le programme a capturéall de nos frappes, y compris la toucheENTER
sur laquelle nous avons appuyé pour dire au programme de continuer. Dans une chaîne, appuyer sur la toucheENTER
crée un caractère spécial qui crée une nouvelle ligne. La sortie du programme fait exactement ce que vous lui avez demandé de faire; il affiche le texte que vous avez entré, y compris cette nouvelle ligne. Ce n'est pas ce à quoi vous vous attendiez, mais vous pouvez le corriger avec des fonctions supplémentaires.
Ouvrez le fichiergreeting.go
dans votre éditeur:
nano greeting.go
Localisez cette ligne dans votre programme:
greeting.go
...
fmt.Scanln(&name)
...
Ajoutez la ligne suivante juste après:
greeting.go
name = strings.TrimSpace(name)
Cela utilise la fonctionTrimSpace
, du package de la bibliothèque standard de Gostrings
, sur la chaîne que vous avez capturée avecfmt.Scanln
. La fonctionstrings.TrimSpace
supprime tous les caractères d'espace, y compris les nouvelles lignes, du début et de la fin d'une chaîne. Dans ce cas, il supprime le caractère de nouvelle ligne à la fin de la chaîne créée lorsque vous avez appuyé surENTER
.
Pour utiliser le packagestrings
, vous devez l'importer en haut du programme.
Localisez ces lignes dans votre programme:
greeting.go
import (
"fmt"
)
Ajoutez la ligne suivante pour importer le packagestrings
:
greeting.go
import (
"fmt"
"strings"
)
Votre programme va maintenant contenir les éléments suivants:
greeting.go
package main
import (
"fmt"
"strings"
)
func main() {
fmt.Println("Please enter your name.")
var name string
fmt.Scanln(&name)
fmt.Printf("Hi, %s! I'm Go!", name)
name = strings.TrimSpace(name)
}
Enregistrez et quitteznano
. Appuyez surCTRL + X
, puis surY
lorsque vous êtes invité à enregistrer le fichier.
Exécutez le programme à nouveau:
go run greeting.go
Cette fois, après avoir entré votre nom et appuyé surENTER
, vous obtenez la sortie attendue:
OutputPlease enter your name.
Sammy
Hi, Sammy! I'm Go!
Vous avez maintenant un programme Go qui prend les entrées d’un utilisateur et les affiche à l’écran.
Conclusion
Dans ce tutoriel, vous avez écrit un programme «Hello, World!» Qui prend les entrées d’un utilisateur, traite les résultats et affiche le résultat. Maintenant que vous disposez d’un programme de base, essayez d’élargir votre programme. Par exemple, demandez la couleur préférée de l’utilisateur et demandez au programme de dire que sa couleur préférée est le rouge. Vous pourriez même essayer d'utiliser cette même technique pour créer un programme simple Mad-Lib.