Erläuterung zur Überprüfung, ob value Schnittstellen implementiert. Golang

9

Ich habe gelesen "Effective Go" und andere Q & amp; wie folgt: golang Interface compliance compile type check , aber trotzdem kann ich nicht richtig verstehen, wie man diese Technik benutzt.

Bitte, siehe Beispiel:

%Vor%

Gibt es einfache Möglichkeiten (z. B. ohne Verwendung von Reflektion) den Wert überprüfen, wenn er eine Schnittstelle implementiert?

    
Timur Fayzrakhmanov 06.01.2015, 17:09
quelle

1 Antwort

15

Sie müssen nur prüfen, ob ein Wert eine Schnittstelle implementiert, wenn Sie den Typ des Werts nicht kennen. Wenn der Typ bekannt ist, wird diese Überprüfung automatisch vom Compiler durchgeführt.

Wenn Sie wirklich trotzdem überprüfen möchten, können Sie dies mit der zweiten Methode tun, die Sie angegeben haben:

%Vor%

welcher Fehler zur Kompilierzeit würde:

%Vor%

Was Sie hier tun, ist, dass Sie einer Variablen vom Typ MyType einen Zeiger von nil type (und Somether value) zuweisen, aber da der Variablenname _ ist, wird er ignoriert.

Wenn MyType Somether implementiert hat, würde es kompilieren und nichts tun

    
Dean Elbaz 06.01.2015, 18:00
quelle

Tags und Links