Heim >Backend-Entwicklung >Golang >Bieten eingebettete primitive Typen in Go echte Vorteile?
Eingebettete Typen: Erkundung der Nützlichkeit primitiver Einbettungen
Bei der Arbeit mit Go-Strukturen kann das Konzept der Einbettung primitiver Typen entstehen. Betrachten Sie den folgenden Codeausschnitt:
type User struct { int32 Name string }
Dieser Code definiert eine User-Struktur, die den primitiven Typ int32 einbettet. Es stellen sich jedoch Fragen hinsichtlich des Nutzens einer solchen Einbettung:
Verfügen eingebettete Grundelemente über Methoden?
Nein, eingebettete Grundelemente wie int32 haben keine damit verbundenen Methoden . Um dies zu überprüfen, kann man Reflektion verwenden, um die Anzahl der verfügbaren Methoden zu überprüfen:
fmt.Println(reflect.TypeOf(int32(0)).NumMethod())
Die Ausgabe ist 0, was anzeigt, dass int32 keine Methoden hat.
Zugriff auf Embedded Primitive Werte
Um auf den eingebetteten int32-Wert innerhalb einer Benutzerinstanz zuzugreifen, kann man den unqualifizierten Typnamen direkt als Feld verwenden Name:
u := User{3, "Bob"} fmt.Printf("%#v\n", u) u.int32 = 4 fmt.Println(u.int32)
Ausgabe:
main.User{int32:3, Name:"Bob"} 4
Vorteile des Einbettens
Das Einbetten primitiver Typen bietet zwar möglicherweise keinen direkten Zugriff auf Methoden, es ist aber möglich bietet bestimmte Vorteile beim Umgang mit Schnittstellen und dem Überschreiben von Methoden.
Nachteile der vorab deklarierten Einbettung Typen
Beim Einbetten vordeklarierter Typen wie int32 ist ein Nachteil zu berücksichtigen:
Das obige ist der detaillierte Inhalt vonBieten eingebettete primitive Typen in Go echte Vorteile?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!