Heim >Backend-Entwicklung >Golang >Gleichheit und tiefe Gleichheit

Gleichheit und tiefe Gleichheit

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBnach vorne
2024-02-06 09:10:04673Durchsuche

Gleichheit und tiefe Gleichheit

Frageninhalt

Warum gibt es einen Unterschied zwischen Equal und DeepEqual?

s1 := "abc"
s2 := "abc"

sv1 := reflect.ValueOf(s1)
sv2 := reflect.ValueOf(s2)

fmt.Println(sv1.Equal(sv2))
fmt.Println(reflect.DeepEqual(sv1, sv2))

Der erste gibt „true“ und der zweite „false“ aus.


Richtige Antwort


reflect.DeepEqual 似乎需要一些手动拆箱,因为它将 reflect.Values 视为 structs 而不是 reflect.Values (reflect.DeepEqual(v1.Interface(), v2.Interface())">

Das obige ist der detaillierte Inhalt vonGleichheit und tiefe Gleichheit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen