Je pouvais trouver les conventions pour nommer les paquets dans Go: pas de trait de soulignement entre les mots, tout en minuscule.
Cette convention s'applique-t-elle aussi aux noms de fichiers?
Placez-vous également une structure dans un fichier comme si vous l'aviez fait pour une classe Java, puis nommez le fichier après la structure?).
Actuellement, si j'ai un struct WebServer, je le mets dans un fichier web_server.go.
Il y a quelques directives à suivre.
_test.go
ne sont compilés et exécutés que par le go test
outil.name_linux.go
ne construira que sur linux, name_AMD64.go
ne construira que sur AMD64. C'est pareil que d'avoir un //+build AMD64
ligne en haut du fichierVoir la documentation pour le go build
outil pour plus de détails: https://golang.org/pkg/go/build/
Go est assez libéral quant à la manière dont vous organisez votre code dans un package. C'est généralement ce qui améliore la lisibilité et la compréhension de votre code. La meilleure façon d’apprendre comment cela est fait est d’étudier les maîtres, c’est-à-dire de parcourir la bibliothèque standard:
Il y a 2 règles auxquelles je peux penser cependant. Lorsque vous spécifiez le code à compiler pour différentes plates-formes, vous utilisez le nom de la plate-forme comme suffixe:
mypkg_linux.go // only builds on linux systems
mypkg_windows_AMD64.go // only builds on windows 64bit platforms
Aussi, si vous avez un fichier nommé server.go
, les tests pour ce fichier seraient en server_test.go
.
En plus de réponse fournie par JimB , les noms de fichier normaux sont en minuscule, courts et sans soulignement ni espace. Généralement, les noms de fichier suivent la même convention que les noms de paquet. Voir la section Noms de paquets de Effective Go .
Voir le paquet strconv pour un bon exemple.
Généralement, les soulignés dans les noms de fichiers sont utilisés pour attribuer un code plate-forme/Arch uniquement, par exemple:
➜ cd $GOROOT/src/pkg/math/
➜ ls sqrt*s
sqrt_386.s sqrt_AMD64p32.s sqrt_AMD64.s sqrt_arm.s
sqrt_386.s
ne sera lu que par le compilateur sur les processeurs 32 bits, sqrt_AMD64.s
sur AMD64, etc.
Ce peut être n'importe laquelle des valeurs valides de GOOS
et/ou GOARCH
( ref .
file_windows_AMD64.go
ne sera compilé que sur win64.