Heim > Backend-Entwicklung > Golang > Wie kann ich Go-Strukturen ohne herkömmliche Konstruktoren initialisieren?

Wie kann ich Go-Strukturen ohne herkömmliche Konstruktoren initialisieren?

Susan Sarandon
Freigeben: 2024-12-24 05:29:18
Original
195 Leute haben es durchsucht

How Can I Initialize Go Structs Without Traditional Constructors?

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
}
Nach dem Login kopieren

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}
}
Nach dem Login kopieren

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}
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage