Maison  >  Article  >  développement back-end  >  Golang - Le nom du package est un double trait de soulignement

Golang - Le nom du package est un double trait de soulignement

WBOY
WBOYavant
2024-02-09 15:00:12923parcourir

Golang - 包名称为双下划线

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.

Contenu de la question

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.

Solution de contournement

Oui, cela signifie le même répertoire. Jetons un coup d'œil au code ci-dessous.

Structure des répertoires

.
├── go.mod
├── greet
│   └── greet.go
└── main.go
Contenu 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")
}

Annuaire actuel

$ 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 grpcprotobuf. 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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer