Maison >développement back-end >Golang >Pourquoi les fonctions Go sont-elles publiques avec des noms en majuscules mais les packages privés avec des noms en minuscules ?
Modificateurs d'accès public et privé dans Go : confusion entre majuscules et minuscules
Lors de la transition de Delphi ou C vers Go, comprendre les règles la gouvernance des modificateurs d’accès peut s’avérer difficile. L'utilisation de lettres majuscules et minuscules pour désigner un accès public et privé est particulièrement déroutante.
Règle pour les modificateurs d'accès :
Dans Go, l'accès public est obtenu en capitalisant le nom de la fonction ou du type. Par exemple, une fonction publique nommée myFunc serait écrite sous la forme func MyFunc().
Exception pour les classes de conteneurs :
Cependant, lorsque vous travaillez avec des classes de conteneurs telles que conteneur/liste , la règle semble enfreindre. Le nom du type de conteneur List est écrit en majuscules, indiquant un accès public, mais le nom du package conteneur/liste est écrit en minuscules. Cette incohérence peut prêter à confusion.
Explication :
Dans Go, les packages sont différents des types. Le nom du package indique le fichier et le répertoire où réside le code d'un package. Le nom du package est généralement le même que la dernière partie du chemin du package, mais ce n'est pas toujours le cas.
Les membres publics d'un package sont accessibles via le nom du type en majuscules. Dans cet exemple, conteneur/liste est le chemin du package et List est le nom du type public. La liste minuscule est l'alias du package, vous permettant de l'appeler liste dans votre code.
Par conséquent, func GetFactors(value *int64) *list.List {...} et l : = list.New() sont tous deux valides car List est un type public dans le package conteneur/list et list est un alias pour ce package.
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!