Die überprüfung der Gleichheit der Schnittstelle{}
Ich bin auf der Suche nach einem []interface{}
Scheibe für eine bestimmte interface{}
Wert:
var v interface{}
for i := 0; i < len(A); i++ {
if (A[i] == v) {
fmt.Println("Gotcha!")
break
}
}
In dem trivialen Fall, die Typen sind int
. Aber was soll ich tun, wenn, zum Beispiel, die Typen sind einige benutzerdefinierte struct
?
- Wenn die Strukturen sind vergleichbarer, funktioniert der code so wie er ist.
- zu erweitern, dass ein wenig, ich zitiere aus @CodingPickle verbunden doc:
Interface values are comparable. Two interface values are equal if they have identical dynamic types and equal dynamic values or if both have value nil.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dank @CodingPickle Kommentar, ich biete die folgenden von der Go Programming Language Specification
Bezüglich
interface{}
s undstructs
:Können Sie auch versuchen, diese Spielplatz https://play.golang.org/p/bgO1_V87v9k
In anderen Worten, der Umgang der Geschlechter scheint einfach in zu Gehen!