Strukturen und ihre Methoden namentlich in Go aufrufen
Bei der Arbeit mit Strukturen kann es vorkommen, dass Sie eine bestimmte Methode aufrufen müssen dynamisch durch seinen Namen. Dies kann in Situationen nützlich sein, in denen der Methodenname zur Laufzeit bestimmt wird oder wenn Sie Code für die Arbeit mit verschiedenen Strukturen verallgemeinern möchten.
Im Gegensatz zu einigen anderen Sprachen bietet Go keinen einfachen Mechanismus zum Aufrufen von Methoden durch ihre Namen. Durch die Nutzung der Reflexionskraft ist es jedoch möglich, diese Funktionalität zu erreichen. So geht's:
Zum Beispiel unter Berücksichtigung der Folgende Struktur und Methode:
type MyStruct struct { // Fields here } func (p *MyStruct) MyMethod() { fmt.Println("My statement.") }
Sie können diese Methode dynamisch wie folgt aufrufen:
structValue := reflect.ValueOf(&myStruct) method := structValue.MethodByName("MyMethod") method.Call([]reflect.Value{})
Dieser Code gibt „Mein Kontoauszug“ aus. zur Konsole.
Hinweis: Es ist wichtig sicherzustellen, dass sowohl die Struktur als auch die Methode, die Sie aufrufen möchten, innerhalb des aktuellen Pakets oder Bereichs sichtbar und zugänglich sind.
Das obige ist der detaillierte Inhalt vonWie kann ich Strukturmethoden in Go dynamisch nach Namen aufrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!