Heim >Backend-Entwicklung >Golang >Hat die Go-Sprache Konstruktoren?
Die Go-Sprache hat keine Konstruktoren. Die Go-Sprache verfügt als strukturierte Sprache nicht über Konstruktoren in objektorientierten Sprachen. Ähnliche Effekte von Konstruktoren in objektorientierten Sprachen können jedoch auf bestimmte Weise erzielt werden, nämlich durch die Verwendung des Prozesses der Strukturinitialisierung zur Simulation Implementierung von Konstruktoren.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, GO Version 1.18, Dell G3-Computer.
Der Konstruktor ist eine spezielle Methode, die hauptsächlich dazu verwendet wird, das Objekt beim Erstellen zu initialisieren, dh den Objektmitgliedsvariablen Anfangswerte zuzuweisen. Eine spezielle Klasse kann mehrere Konstruktoren haben, die nach der Anzahl der Parameter oder den Parametertypen, also der Überladung der Konstruktoren, unterschieden werden können.
Als strukturierte Sprache verfügt Golang nicht über die Konstruktionsmethoden objektorientierter Sprachen, aber Golang kann objektorientierte Programmierideen und -methoden wie Vererbung und Konstruktoren wie C++ implementieren.
Wegen des struct
是值类型,如果结构体比较复杂的话,值拷贝
性能开销会比较大,所以该构造函数返回的是结构体指针
Typs.
Spezifikation: Beginnen Sie mit dem Schlüsselwort „Neu“. Geben Sie den Strukturzeiger zurück Eigenschaften von Katzen, Dann kann es je nach Farbe und Name der Katze unterschiedliche Farben und Namen geben. Gleichzeitig können Sie Farben und Namen verwenden, um Instanzen verschiedener Katzentypen zu konstruieren Der Prozess kann auf den folgenden Code verwiesen werden:
type Cat struct { Color string Name string } func NewCatByName(name string) *Cat { return &Cat{ Name: name, } } func NewCatByColor(color string) *Cat { return &Cat{ Color: color, } }Die Codebeschreibung lautet wie folgt:
Zeile 7 nimmt die Adresse und instanziiert die Katzenstruktur.
Zeile 8 initialisiert das Namensfeld der Katze und ignoriert das Farbfeld. Zeile 12 definiert die Funktion, die die Katzenstruktur mit Farbe erstellt und den Katzenzeiger zurückgibt.type Cat struct { Color string Name string } type BlackCat struct { Cat // 嵌入Cat, 类似于派生 } // “构造基类” func NewCat(name string) *Cat { return &Cat{ Name: name, } } // “构造子类” func NewBlackCat(color string) *BlackCat { cat := &BlackCat{} cat.Color = color return cat }
Zeile 18, NewBlackCat() verwendet Farbe als Parameter und der Konstruktor gibt einen BlackCat-Zeiger zurück.
Zeile 19, instanziiert die BlackCat-Struktur, und gleichzeitig wird auch Cat instanziiert. Zeile 20, füllen Sie das in BlackCat eingebettete Cat-Farbattribut aus. BlackCat hat keine Mitglieder und alle Mitglieder stammen von Cat.Programmierunterricht
】Das obige ist der detaillierte Inhalt vonHat die Go-Sprache Konstruktoren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!