Bei der Arbeit mit Strukturen in Go kann die Initialisierung mit sinnvollen Standardwerten entscheidend sein, um ihre ordnungsgemäße Funktion sicherzustellen. Während es in Go an herkömmlichen Konstruktoren mangelt, gibt es mehrere Methoden, mit denen dieses Ziel erreicht werden kann.
Init-Methode
Die Init-Methode ist zwar auf Paketebene definiert, kann verwendet werden, um Initialisierungsaufgaben für Strukturen innerhalb des Pakets durchzuführen. Es ist jedoch nicht direkt an die Struktur gebunden und wird bei der Strukturerstellung nicht aufgerufen.
Neue Funktionen
Eine gängige Praxis in Go ist die Definition neuer Funktionen Gibt initialisierte Zeiger auf Strukturen zurück. Diese Funktionen ermöglichen die Zuweisung von Standardwerten während der Strukturinitialisierung:
func NewThing(someParameter string) *Thing { p := new(Thing) p.Name = someParameter p.Num = 33 // Sensible default value return p }
Komprimierte neue Funktionen
Für einfache Strukturen kann eine komprimierte Version der neuen Funktion sein Wird verwendet und gibt direkt eine initialisierte Struktur zurück:
func NewThing(someParameter string) *Thing { return &Thing{someParameter, 33} }
Make Funktionen
Make-Funktionen ähneln New-Funktionen, geben jedoch Strukturen nach Wert und nicht nach Zeigern zurück. Dies ist nützlich, wenn Sie keinen Zeiger auf die Struktur benötigen:
func makeThing(name string) Thing { return Thing{name, 33} }
Referenz
Weitere Informationen zur Zuordnung mithilfe von new finden Sie im aktuellen Go Dokumentation: https://go.dev/doc/ Effective_go#allocation
Das obige ist der detaillierte Inhalt vonWie kann ich Strukturen mit sinnvollen Standardwerten in Go initialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!