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.
Schreibe einen Kommentar