Können Konstruktoren zum Initialisieren von Go-Strukturen verwendet werden?
In Go können Strukturen über verschiedene Methoden mit sinnvollen Standardwerten initialisiert werden. Trotz des Fehlens traditioneller Konstruktoren aufgrund der Nicht-OOP-Natur von Go gibt es alternative Techniken, um eine ähnliche Funktionalität zu erreichen.
Methode 1: NewThing-Funktion mit Zeigerrückgabe
Wann Nullwerte ungeeignet sind, besteht eine Möglichkeit darin, eine „NewThing“-Funktion zu erstellen, die einen Zeiger auf eine neu initialisierte Funktion zurückgibt Struktur:
type Thing struct { Name string Num int } func NewThing(someParameter string) *Thing { p := new(Thing) p.Name = someParameter p.Num = 33 // Set a sensible default value return p }
Methode 2: Komprimierte „NewThing“-Funktion
Für einfachere Strukturen steht eine prägnantere Methode zur Verfügung:
func NewThing(someParameter string) *Thing { return &Thing{someParameter, 33} }
Methode 3: „makeThing“-Funktion mit Wert Rückgabe
Wenn die Rückgabe eines Zeigers nicht erwünscht ist, kann die Funktion „makeThing“ genannt werden und einen Wert zurückgeben:
func makeThing(name string) Thing { return Thing{name, 33} }
Referenz
Weitere Einzelheiten finden Sie im Abschnitt „Zuordnung mit Neu“ in Effective Go.
Das obige ist der detaillierte Inhalt vonWie kann ich Go-Strukturen ohne herkömmliche Konstruktoren initialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!