Prüfe, ob struct eine gegebene Schnittstelle implementiert

7

Ich muss durch das gesamte Feld eines Strukturtyps gehen und prüfen, ob sie eine bestimmte Schnittstelle implementiert.

%Vor%

Wenn ein Aufruf HasModels mit einer Struktur wie folgt lautet:

%Vor%

Mit Unternehmen und Benutzer beide Model implementieren; Ich bekomme f.Type.Implements (ModelType), die für das Feld Firma der Benutzerstruktur false zurückgibt.

Das ist unerwartet, was mache ich hier falsch?

    
arnaud briche 02.09.2013, 09:57
quelle

2 Antworten

14

Sie haben leider die wesentlichen Teile weggelassen (bitte posten Sie immer komplette Programme), so kann ich nur vermuten, dass das Problem in einer auf einem Zeigerempfänger definierten Methode liegt, in welchem ​​Fall das Verhalten Ihres Codes ist erwartet. Überprüfen Sie dieses Beispiel und seine Ausgabe:

%Vor%

Spielplatz

Ausgabe:

%Vor%     
zzzz 02.09.2013, 10:45
quelle
4

Es gibt einen einfacheren Weg, dies zu tun, der nicht reflektiert werden muss. Zum Beispiel:

%Vor%

ruft die Middleware () -Methode nur in den Slice-Elementen auf, die die Middlewarer-Schnittstelle implementieren.

    
David Tootill 02.05.2015 17:41
quelle

Tags und Links