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.
reflect.DeepEqual
似乎需要一些手动拆箱,因为它将 reflect.Value
s 视为 struct
s 而不是 reflect.Value
s (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!