Heim >Backend-Entwicklung >Golang >Wie funktionieren Gleichheitsoperatoren beim Vergleich von „interface{}'-Werten in Go?

Wie funktionieren Gleichheitsoperatoren beim Vergleich von „interface{}'-Werten in Go?

DDD
DDDOriginal
2024-12-03 13:28:09906Durchsuche

How Do Equality Operators Work When Comparing `interface{}` Values in Go?

Vergleichen von Werten des Typs Interface{}

In Go ist der Vergleich von Werten des Typs Interface{} ein häufiger Vorgang. Allerdings kann es beim Vergleich nicht-trivialer Typen, wie z. B. benutzerdefinierter Strukturen, zu Verwirrung führen.

Verwendung von Gleichheitsoperatoren

Um Schnittstellen{}-Werte zu vergleichen, sind die Gleichheitsoperatoren == und != beschäftigt. Diese Operatoren folgen bestimmten Regeln, die in der Go Programming Language Specification definiert sind:

  • Schnittstellenwerte gelten als gleich, wenn sie denselben dynamischen Typ und gleiche dynamische Werte haben oder wenn beide einen Nullwert haben.
  • Für Nicht-Schnittstellenwerte vom Typ X und Schnittstellenwerte vom Typ T, wobei X T implementiert, sind die Werte vergleichbar, wenn X vergleichbar ist. Sie sind gleich, wenn der dynamische Typ des Schnittstellenwerts mit X übereinstimmt und sein dynamischer Wert gleich dem Nicht-Schnittstellenwert ist.

Vergleich von Strukturen und Schnittstellen

Strukturen spielen eine wichtige Rolle bei Typenvergleichen. Gemäß der Spezifikation:

  • Strukturwerte sind vergleichbar, wenn alle ihre nicht leeren Felder vergleichbar sind.
  • Zwei Strukturwerte sind gleich, wenn ihre entsprechenden nicht leeren Felder gleich sind.

Anwendung in der Praxis

Beachten Sie den folgenden Ausschnitt von Schnittstellen{}-Werten: []interface{}{1, „Hallo“, true}. Um nach einem bestimmten Wert, beispielsweise 1, zu suchen, kann man das Slice durchlaufen und jedes Element mit dem Gleichheitsoperator vergleichen:

for i := 0; i < len(slice); i++ {
  if slice[i] == 1 {
    // Value found!
    break
  }
}

Schlussfolgerung

Werte der Schnittstelle vergleichen{} eingeben Bei Go geht es darum, die in der Sprachspezifikation definierten Gleichheitsregeln zu verstehen. Durch die Verwendung dieser Regeln können Entwickler Vergleiche zwischen Schnittstellenwerten, einschließlich nicht trivialer Typen wie benutzerdefinierten Strukturen, sicher durchführen.

Das obige ist der detaillierte Inhalt vonWie funktionieren Gleichheitsoperatoren beim Vergleich von „interface{}'-Werten in Go?. 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