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 ?

Pourquoi les fonctions Go sont-elles publiques avec des noms en majuscules mais les packages privés avec des noms en minuscules ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-26 15:26:12200parcourir

Why Are Go Functions Public with Uppercase Names but Packages Private with Lowercase Names?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn