Überprüfung der Gleichheit von Slices
Beim Vergleich zweier Slices auf Gleichheit können die Standardoperatoren == und != nicht direkt verwendet werden Funktioniert nur für Nullwerte. Um dies zu beheben, kann die Funktion „reflect.DeepEqual()“ eingesetzt werden.
Deep Equality of Slices
DeepEqual() führt einen rekursiven Vergleich von Werten durch und stellt so sicher, dass alle Elemente innerhalb der Scheiben werden untersucht. Für Slices berücksichtigt es die folgenden Kriterien:
Code Beispiel
Der folgende Codeausschnitt zeigt, wie DeepEqual() zum Vergleichen von Slices verwendet wird:
package main import ( "fmt" "reflect" ) func main() { s1 := []int{1, 2} s2 := []int{1, 2} fmt.Println(reflect.DeepEqual(s1, s2)) // Output: true (slices are equal) }
Unterschied zum Operator ==
Im Gegensatz zum ==-Operator berücksichtigt DeepEqual() die interne Struktur der Slices, einschließlich ihrer zugrunde liegenden Arrays. Daher bietet es einen umfassenderen Vergleich für Objekte wie Slices, bei denen zwei Instanzen mit denselben Elementen möglicherweise nicht identisch sind.
Das obige ist der detaillierte Inhalt vonWie kann ich Slices in Go korrekt auf Gleichheit vergleichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!