Abfragen der Methodenexistenz in Go
Im Gegensatz zu Objective-C gibt es in Go keinen expliziten Mechanismus, um zu überprüfen, ob ein Objekt eine bestimmte hat Verfahren. Es gibt jedoch mehrere Ansätze, um diesem Bedarf gerecht zu werden.
Einfache Methodenprüfung
Sie können eine Schnittstelle nur mit der Methode definieren, an der Sie interessiert sind, und einen Typ ausführen Behauptung gegen Ihre Objekt:
i, ok := myInstance.(InterfaceImplementingThatOneMethodIcareAbout)
Alternativ:
i, ok = myInstance.(interface{ F() })
Ein wahrer Wert für ok zeigt an, dass die Methode existiert.
Erweiterter Ansatz : Reflect-Paket
Das Reflect-Paket bietet eine umfassendere Möglichkeit zur Selbstbeobachtung Typen:
st := reflect.TypeOf(myInstance) m, ok := st.MethodByName("F")
Wenn ok falsch ist, existiert die Methode nicht. Andernfalls können Sie die Methode mit m.F().
aufrufenDas obige ist der detaillierte Inhalt vonWie kann ich das Vorhandensein einer Methode in Go feststellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!