Maison >développement back-end >Golang >Golang - Le nom du package est un double trait de soulignement
Dans la programmation Golang, le nom du package est un concept très important. La spécification pour les noms de packages est d'utiliser des lettres minuscules et de ne pas contenir de caractères spéciaux ni d'espaces. Cependant, il existe un cas particulier où le nom du package est souligné deux fois. En effet, dans Golang, les packages avec des traits de soulignement doubles dans leurs noms de package ont une signification particulière. Il représente un package vide, utilisé pour déclarer des variables ou effectuer certaines opérations d'initialisation spéciales. Cette fonctionnalité est très utile dans certains scénarios spécifiques, notamment lors du développement de certains outils ou frameworks. Donc, si vous voyez un nom de package avec des traits de soulignement doubles dans Golang, ne vous y trompez pas, il s'agit d'un nom de package légal avec une signification particulière.
Dans le code go généré par mon protobuf, le package est :
package __Que signifie
双下划线
? Est-ce le même que le nom du dossier ?
Y a-t-il de la documentation à ce sujet ? J'ai cherché mais je ne l'ai pas trouvée. Et le code se compile sans erreur.
Oui, cela signifie le même répertoire. Jetons un coup d'œil au code ci-dessous.
. ├── go.mod ├── greet │ └── greet.go └── main.goContenu en
greet.go
package __ import "fmt" func hello(name string) { fmt.printf("hello %s\n", name) }Contenu en
main.go
package main import greet "playground/greet" func main() { greet.hello("eric") }
$ pwd /Users/thedatageek/Codes/go-playground
Malheureusement, je ne trouve pas non plus de documentation go.
Cela semble cependant être une bonne chose. Vous n'avez pas vraiment besoin de nommer le package. Il vous suffit de nommer le répertoire et les noms des packages seront automatiquement les mêmes.
Remarque : Ce n'est certainement pas le cas grpc
或 protobuf
. Cependant, en tant que coutume, si vous avez généré le stub original à partir du fichier d'origine et ajouté des fichiers utilitaires supplémentaires, vous pouvez les placer dans un répertoire, puis l'importer directement par le nom du répertoire. Par exemple le dépôt github suivant
https://www.php.cn/link/570badcfe14697bf2a244e2e25b93e59 https://www.php.cn/link/11b01bd09f8d22fecc14d3418f83caab https://www.php.cn/link/8cee1a0fe765af425dc6f0b6169a6c07 https://www.php.cn/link/8230bea7d54bcdf99cdfe85cb07313d5 https://www.php.cn/link/05f03bcccda955d1689b36046a6db899 https://www.php.cn/link/3a93a609b97ec0ab0ff5539eb79ef33a
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!