Heim >Backend-Entwicklung >Golang >Wie kann ich Strukturen mit sinnvollen Standardwerten in Go initialisieren?

Wie kann ich Strukturen mit sinnvollen Standardwerten in Go initialisieren?

Susan Sarandon
Susan SarandonOriginal
2024-12-26 15:04:09466Durchsuche

How Can I Initialize Structs with Sensible Default Values in Go?

Konstruktoren in Go: Ein Leitfaden für sinnvolle Standardwerte

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn