為什麼 Equal 和 DeepEqual 之間有差異?
s1 := "abc" s2 := "abc" sv1 := reflect.ValueOf(s1) sv2 := reflect.ValueOf(s2) fmt.Println(sv1.Equal(sv2)) fmt.Println(reflect.DeepEqual(sv1, sv2))
第一個列印 true,第二個列印 false。
reflect.DeepEqual
似乎需要一些手動拆箱,因為它將reflect.Value
s 視為struct
s 而不是reflect.Value
s (reflect.DeepEqual(v1.Interface(), v2.Interface())
以上是平等與深度平等的詳細內容。更多資訊請關注PHP中文網其他相關文章!