Heim >Backend-Entwicklung >Golang >Wie können wir interface{}-Werte für Gleichheit in Go vergleichen?

Wie können wir interface{}-Werte für Gleichheit in Go vergleichen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-05 21:24:11717Durchsuche

How Can We Compare interface{} Values for Equality in Go?

Können wir die Gleichheit der Schnittstelle prüfen{}?

In Go ist es wichtig zu wissen, wie man zwei Werte auf Gleichheit vergleicht, insbesondere wenn es um die Schnittstelle geht{ }-Typen.

Bedenken Sie den folgenden Codeausschnitt:

var v interface{}
for i := 0; i < len(A); i++ {
  if (A[i] == v) {
    fmt.Println("Gotcha!")
    break
  }
}

Dieser Code dient der Suche nach einem bestimmten Wert innerhalb eines Slice von interface{}. Beim Umgang mit benutzerdefinierten Strukturen stellt sich jedoch die Frage: Wie bestimmen wir die Gleichheit der Werte dieser Strukturen, die als Schnittstelle{} gespeichert sind?

Dank der in den Kommentaren geteilten Erkenntnisse finden Sie hier eine Erklärung, die darauf basiert die Go-Programmiersprachenspezifikation:

Interface{}-Gleichheit

  • Zwei interface{}-Werte sind gleich, wenn sie gleich sind denselben dynamischen Typ und Wert haben oder wenn beide den Wert Null haben.
  • Für einen Wert x vom Typ X und einen Wert t vom Typ interface{} sind sie vergleichbar, wenn die Werte vom Typ X vergleichbar sind und X implementiert T. Sie sind gleich, wenn der dynamische Typ von t X ist und der dynamische Wert von t gleich x ist.

Struktur Gleichheit

  • Strukturwerte sind vergleichbar, wenn jedes Feld in der Struktur vergleichbar ist.
  • Zwei Strukturwerte sind gleich, wenn ihre entsprechenden nicht leeren Felder gleich sind.

Einfacher ausgedrückt ist die Überprüfung auf Gleichheit in Go unkompliziert, unabhängig davon, ob es sich um eine Schnittstelle{} oder Strukturen handelt. Es ist jedoch erwähnenswert, dass der Go-Spielplatz ein wertvolles Werkzeug zum Experimentieren und Verstehen sein kann, wenn Sie auf Verwirrung stoßen.

Das obige ist der detaillierte Inhalt vonWie können wir interface{}-Werte für Gleichheit in Go vergleichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn