Maison >développement back-end >Golang >Égalité et égalité profonde
Pourquoi y a-t-il une différence entre Equal et DeepEqual ?
s1 := "abc" s2 := "abc" sv1 := reflect.ValueOf(s1) sv2 := reflect.ValueOf(s2) fmt.Println(sv1.Equal(sv2)) fmt.Println(reflect.DeepEqual(sv1, sv2))
Le premier imprime vrai et le second imprime faux.
reflect.DeepEqual
似乎需要一些手动拆箱,因为它将 reflect.Value
s 视为 struct
s 而不是 reflect.Value
s (reflect.DeepEqual(v1.Interface(), v2.Interface())">
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!