Öffentliche und private Zugriffsmodifikatoren in Go: Verwechslung von Groß- und Kleinbuchstaben
Beim Übergang von Delphi oder C zu Go die Regeln verstehen Die Steuerung von Zugriffsmodifikatoren kann eine Herausforderung sein. Besonders verwirrend ist die Verwendung von Groß- und Kleinbuchstaben zur Kennzeichnung des öffentlichen und privaten Zugriffs.
Regel für Zugriffsmodifikatoren:
In Go wird der öffentliche Zugriff durch Großschreibung erreicht der Funktions- oder Typname. Beispielsweise würde eine öffentliche Funktion mit dem Namen myFunc als func MyFunc() geschrieben.
Ausnahme für Containerklassen:
Allerdings bei der Arbeit mit Containerklassen wie Container/Liste , die Regel scheint zu brechen. Der Containertypname „List“ wird in Großbuchstaben geschrieben, um den öffentlichen Zugriff anzuzeigen, der Paketname „Container/Liste“ wird jedoch in Kleinbuchstaben geschrieben. Diese Inkonsistenz kann verwirrend sein.
Erklärung:
In Go unterscheiden sich Pakete von Typen. Der Paketname gibt die Datei und das Verzeichnis an, in denen sich der Code eines Pakets befindet. Der Paketname ist normalerweise derselbe wie der letzte Teil des Paketpfads, aber das ist nicht immer der Fall.
Auf die öffentlichen Mitglieder eines Pakets wird über den Typnamen in Großbuchstaben zugegriffen. In diesem Beispiel ist „container/list“ der Paketpfad und „List“ der öffentliche Typname. Die Liste in Kleinbuchstaben ist der Alias für das Paket, sodass Sie in Ihrem Code darauf als Liste verweisen können.
Daher gilt: func GetFactors(value *int64) *list.List {...} und l : = list.New() sind beide gültig, da List ein öffentlicher Typ innerhalb des Container-/Listenpakets ist und list ein Alias für dieses Paket ist.
Das obige ist der detaillierte Inhalt vonWarum sind Go-Funktionen mit Namen in Großbuchstaben öffentlich, Pakete jedoch mit Namen in Kleinbuchstaben privat?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!