Konstruktoren in Go
Beim Umgang mit benutzerdefinierten Typen, die in Go als Strukturen definiert sind, kann es wünschenswert sein, sie mit sinnvollen Standardwerten zu initialisieren Schaffung. Im Gegensatz zu herkömmlichen objektorientierten Programmiersprachen verfügt Go jedoch nicht über dedizierte Konstruktoren für Strukturen.
Alternative zu Konstruktoren: Neue Funktionen
Um dieser Situation zu begegnen, entwickelt Go verwenden häufig „neue“ Funktionen. Diese Funktionen akzeptieren die notwendigen Parameter für die Initialisierung und geben einen Zeiger auf eine neue Strukturinstanz zurück:
type Thing struct { Name string Num int } func NewThing(someParameter string) *Thing { p := new(Thing) p.Name = someParameter p.Num = 33 return p }
Dieser Ansatz ermöglicht die Initialisierung von Strukturwerten mit bestimmten Standardwerten, wie z. B. der Zuweisung eines Werts zum Feld „Num“. .
Komprimierte neue Funktionssyntax
Für einfache Strukturen eine komprimierte Syntax kann verwendet werden:
func NewThing(someParameter string) *Thing { return &Thing{someParameter, 33} }
Nicht-Zeiger-Rückgabetypen
Wenn die Rückgabe eines Zeigers nicht gewünscht ist, kann eine „make“-Funktion anstelle von „ verwendet werden. Neu":
func makeThing(name string) Thing { return Thing{name, 33} }
Das obige ist der detaillierte Inhalt vonWie initialisiere ich Strukturen in Go Without Constructors?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!