Anonyme Felder in Go-Strukturen
In Go können Strukturen anonyme Felder enthalten, also Felder ohne explizite Namen. Mit diesen Feldern können Sie eine andere Struktur oder einen anderen Typ in Ihre aktuelle Struktur einbetten und so auf die Felder des eingebetteten Typs zugreifen, ohne diese explizit aufzulisten.
Zweck anonymer Felder
Anonyme Felder dienen mehreren Zwecken:
Zugriff auf anonyme Felder
Sie Sie können auf anonyme Felder auf die gleiche Weise zugreifen, wie Sie auf benannte Felder zugreifen würden. Auf das hochgestufte Feld kann direkt über den Feldnamen der übergeordneten Struktur zugegriffen werden. Auf andere anonyme Felder kann über den Feldnamen des eingebetteten Typs zugegriffen werden.
Beispiel
Betrachten Sie den folgenden Code:
package main import "fmt" type Widget struct { name string } type WrappedWidget struct { Widget // Promoted field Time time.Time Price int64 } func main() { widget := Widget{"my widget"} wrappedWidget := WrappedWidget{widget, time.Now(), 1234} fmt.Printf("Widget named %s, created at %s, has price %d\n", wrappedWidget.name, // Accessing the promoted field wrappedWidget.Time, // Accessing an anonymous field wrappedWidget.Price) // Accessing a normal field }
Ausgabe:
Widget named my widget, created at 2009-11-10 23:00:00 +0000 UTC m=+0.000000001, has price 1234
In diesem Beispiel bettet WrappedWidget die Widget-Struktur ein und stuft ihr Namensfeld hoch. Dadurch können Sie direkt auf der WrappedWidget-Instanz auf das Namensfeld zugreifen.
Das obige ist der detaillierte Inhalt vonWie funktionieren anonyme Felder in Go-Strukturen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!