Wie kann ich das Vorhandensein einer Methode in Go feststellen?

DDD
Freigeben: 2024-11-12 16:29:01
Original
287 Leute haben es durchsucht

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)
Nach dem Login kopieren

Alternativ:

i, ok = myInstance.(interface{ F() })
Nach dem Login kopieren

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")
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage