Heim >Backend-Entwicklung >Golang >Wie kann ich das Vorhandensein einer Methode in Go feststellen?

Wie kann ich das Vorhandensein einer Methode in Go feststellen?

DDD
DDDOriginal
2024-11-12 16:29:01388Durchsuche

How Can I Determine Method Existence in Go?

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().

aufrufen

Das 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn