Dumping-Methoden von Strukturen in Golang
Während Golangs „fmt“-Paket eine „Printf“-Methode zum Dumpen der Eigenschaften einer Struktur bereitstellt, gibt es eine Sie müssen sowohl Eigenschaften als auch Methoden einer Struktur abrufen. Betrachten Sie das folgende Beispiel:
type Foo struct { Prop string } func (f Foo)Bar() string { return f.Prop }
Um die Existenz der Methode „Bar()“ in einer initialisierten Instanz vom Typ „Foo“ zu überprüfen, sollten Sie das Paket „reflect“ verwenden. So würden Sie es machen:
fooType := reflect.TypeOf(&Foo{}) for i := 0; i < fooType.NumMethod(); i++ { method := fooType.Method(i) fmt.Println(method.Name) }
Wenn Sie feststellen möchten, ob ein Typ einen bestimmten Methodensatz implementiert, sind Schnittstellen und Typzusicherungen möglicherweise praktischer. Ein Beispiel:
func implementsBar(v interface{}) bool { type Barer interface { Bar() string } _, ok := v.(Barer) return ok }
Um eine Instanz von „Foo“ für die „Bar()“-Methode zu testen:
fmt.Println("Foo implements the Bar method:", implementsBar(Foo{}))
Alternativ, um explizit zu bestätigen, dass ein Typ über bestimmte Methoden verfügt Kompilierzeit:
var _ Barer = Foo{}
Das obige ist der detaillierte Inhalt vonWie kann ich sowohl Eigenschaften als auch Methoden einer Go-Struktur sichern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!