Ich bin eine []interface{}
Scheibe für einen bestimmten interface{}
Wert suchen:Überprüfung Gleichheit der Schnittstelle {}
var v interface{}
for i := 0; i < len(A); i++ {
if (A[i] == v) {
fmt.Println("Gotcha!")
break
}
}
Im trivialen Fall die Typen sind int
. Was soll ich jedoch tun, wenn zum Beispiel die Typen benutzerdefiniert struct
sind?
Wenn die Strukturen [vergleichbar] sind (https://golang.org/ref/spec#Comparison_operators), funktioniert der Code wie er ist. –
, um ein wenig zu erweitern, zitiert aus dem verknüpften Dokument von @CodingPickle: 'Schnittstellenwerte sind vergleichbar. Zwei Schnittstellenwerte sind gleich, wenn sie identische dynamische Typen und gleiche dynamische Werte haben oder wenn beide den Wert Null haben –