#1.3 Commandes Go
Le langage Go est disponible par défaut avec un ensemble complet d'outils. Vous pouvez exécuter la ligne de commande go
pour les afficher:
Figure 1.3 Informations détaillées affichées par la commande go
Elles ont toutes une utilité. Voyons l'utilisation de certaines d'entre elles.
Cette commande sert de tests de compilation. Elle compilera les paquets dépendants au besoin.
- Si le paquet n'est pas le paquet
main
, commemymath
en section 1.2, rien ne sera généré après l'exécution dego build
. Si vous avez besoin de fichier de paquet.a
dans$GOPATH/pkg
, utilisez plutôtgo install
à la place. - Si le paquet est le paquet
main
, la commande générera un exécutable dans le même dossier. Si vous voulez que l'exécutable soit généré dans$GOPATH/bin
, utilisezgo install
ougo build -o ${VOTRE_CHEMIN}/a.exe.
- S'il y a plusieurs fichiers dans le dossier, mais que vous voulez juste compiler un d'entre eux, ajoutez le nom de ce fichier après
go build
. Par exemple,go build a.go
.go build
va compiler les fichiers dans ce dossier. - Vous pouvez également définir le nom du fichier généré. Par exemple, dans le projet
mathapp
(section 1.2), lancergo build -o astaxie.exe
va générerastaxie.exe
au lieu demathapp.exe
. Le nom par défaut est le nom du dossier (package nommain
) ou celui du premier fichier source (paquetmain
).
(D'après Les Spécifications du Langage Go, les noms de paquets devraient être ceux suivant la déclaration package
en première ligne de vos fichiers sources.
Cela n'a pas à être le même que celui du dossier, et que le nom de fichier de l'exécutable soit celui du dossier par défaut.)
-
go build
ignore les fichiers dont le nom commence par_
ou.
. -
Si vous voulez avoir différents fichiers sources par système d'exploitation, vous pouvez nommer vos fichiers avec pour suffixe le nom du système. Supposez qu'il y ait plusieurs fichiers pour charger des tableaux. Ces fichiers peuvent être nommés comme suit:
array_linux.go | array_darwin.go | array_windows.go | array_freebsd.go
go build
choisira celui qui correspondra à votre système d'exploitation. Par exemple, seul sera compilé array_linux.go
sous Linux,
les autres seront ignorés.
Cette commande sert à supprimer les fichiers générés par le compilateur, comprenant les fichiers suivants:
_obj/ // Ancien dossier objet, créé par les Makefiles
_test/ // Ancien dossier test, créé par les Makefiles
_testmain.go // Ancien dossier de gotest, créé par les Makefiles
test.out // Ancien fichier de test, créé par les Makefiles
build.out // Ancien fichier de test, créé par les Makefiles
*.[568ao] // fichiers objets, créés par les Makefiles
DIR(.exe) // généré par go build
DIR.test(.exe) // généré par go test -c
MAINFILE(.exe) // généré par go build MAINFILE.go
J'utilise généralement cette commande pour supprimer les fichiers avant de mettre à jour mon projet sur Github. Ils sont utiles lors de tests en local, mais inutiles à avoir dans votre système de gestion de version.
Les développeurs C/C++ doivent avoir l'habitude des débats sur quelle convention d'écriture de code est la meilleure: le style K&R ou ANSI. Avec Go, il n'existe qu'une convention à appliquer. Par exemple, les parenthèses ouvrantes doivent être en fin de ligne, et ne peuvent être sur une ligne toutes seules, sinon vous aurez des erreurs à la compilation!
Par chance, vous n'avez pas à retenir toutes ces règles.
go fmt
le fait à votre place. exécutez simplement go fmt <File name>.go
dans un terminal.
Je n'utilise pas souvent cette commande car les IDE l'exécutent normalement automatiquemennt lorsque vous sauvegardez un fichier.
Nous reviendrons sur les IDE dans la section suivante.
On utilise généralement gofmt -w
au lieu de go fmt
.
Ce dernier ne modifie pas vos fichiers source après formattage. gofmt -w src
formatte tout votre projet.
Cette commande récupère des paquets distants. Sont supportés BitBucket, Github, Google Code et Launchpad.
Il se passe en fait deux choses à l'exécution de cette commande.
En premier lieu, Go télécharge le code source, puis il exécute go install
.
Avant d'utiliser cette commande, assurez-vous d'installer les outils nécessaires.
BitBucket (Mercurial Git)
Github (git)
Google Code (Git, Mercurial, Subversion)
Launchpad (Bazaar)
Pour utiliser cette commande, vous devez installer ces outils correctement.
N'oubliez pas de définir votre $PATH
.
Notez que go get
supporte également vos noms de domaine personnalisés. Exécutez go help remote
pour en connaître les détails.
Cette commande compile tous les paquets et génére les fichiers, puis les déplace dans $GOPATH/pkg
ou $GOPATH/bin
.
Cette commande charge tous les fichiers qui ont pour nom *_test.go
et génére les fichiers de test, puis affiche des informations similaires à celles-ci.
ok archive/tar 0.011s
FAIL archive/zip 0.022s
ok compress/gzip 0.033s
...
Elle teste tous vos fichiers de test par défaut. Utilisez la commande go help testflag
pour plus de détails.
Beaucoup de personnes disent qu'il est inutile d'avoir une quelconque documentation tiers pour programmer en Go (bien qu'en fait j'ai déjà développé CHM). Go a par défaut un outil très élaboré pour travailler avec la documentation.
Alors comment rechercher des informations sur un paquet dans la documentation? Par exemple, si vous voulez plus d'informations sur le paquet builtin
,
utilisez la commande go doc builtin
.
De la même manière, utilisez la commande go doc net/http
pour rechercher la documentation du paquet http
.
Si vous voulez plus de détails spécifiques à une fonction, utilisez godoc fmt Printf
, ou godoc -src fmt Printf
pour voir le code source.
Exécutez la commande godoc -http=:8080
, puis ouvrez 127.0.0.1:8080
dans votre navigateur. Vous devriez voir un golang.org
local.
Il peut non seulement afficher les informations des paquets standards, mais aussi les paquets de votre dossier $GOPATH/pkg
.
C'est très bien pour ceux bloqués derrière la Grande Muraille de Chine.
Go fournit d'autres commandes que celles vues précédemment:
go fix // mise à jour du code d'une version antérieure
// à go1 vers une version plus récente que go1
go version // obtenir des informations sur votre version de Go
go env // afficher vos variables d'environnement Go
go list // lister tous les paquets installés
go run // compiler les fichiers temporaires et lancer l'application
Les commandes que l'on a vues proposent également plus d'options que ce que nous avons vu. Vous pouvez utiliser go help <command>
pour les visualiser.
- Table des matières
- Section précédente: $GOPATH et workspace
- Section suivante: Outils de développement Go