Kapselung privater Felder und Methoden für Strukturen in Go
In Go ist das Erreichen einer echten Kapselung sowohl für Strukturfelder als auch für Methoden eine Frage des Verständnisses Regeln für den Gültigkeitsbereich und die Sichtbarkeit von Variablen.
Konventionell wird ein Bezeichner, der mit einem Großbuchstaben beginnt, exportiert und kann abgerufen werden außerhalb des deklarierenden Pakets. Umgekehrt sind kleingeschriebene Bezeichner nur innerhalb des Pakets selbst zugänglich.
Um sowohl die mytype-Struktur als auch ihre doPrivate-Methode zu privatisieren, sollten die folgenden Schritte unternommen werden:
Der resultierende Code:
// Package mypkg defines the private mytype struct and its methods. package mypkg type mytype struct { size string hash uint32 } // doPrivate can only be accessed by members of mytype. func (r *mytype) doPrivate() string { return r.size }
Jetzt nur noch Mitglieder von mytype struct kann auf seine privaten Felder und Methoden zugreifen. Externe Typen oder Funktionen innerhalb des mypkg-Pakets können nicht direkt auf diese privaten Mitglieder zugreifen.
Das obige ist der detaillierte Inhalt vonWie kapsele ich private Felder und Methoden in Go-Strukturen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!