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?
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%Ausgabe:
%Vor%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.
Tags und Links reflection go