为了账号安全,请及时绑定邮箱和手机立即绑定

Golang:reflect.DeepEqual 返回 false

Golang:reflect.DeepEqual 返回 false

Go
天涯尽头无女友 2021-09-27 16:41:56
我很好奇为什么这个 DeepEqual 检查是错误的:package mainimport (    "encoding/json"    "fmt"    "log"    "reflect"    "strings")type Result struct {    Topic string `json:"topic,omitempty"`    Id    int    `json:"id,omitempty"`}// Result represents the returned collection from a topic search.type ResultResponse struct {    Result []Result `json:"results"`}func main() {    want := ResultResponse{        []Result{{Topic: "Clojure", Id: 1000}},    }    input := `{"results": [ {"topic": "Clojure", "id": 1000} ]}`    p := ResultResponse{}    err := json.NewDecoder(strings.NewReader(input)).Decode(&p)    if err != nil {        panic(err)    }    fmt.Println(p, want)    if !reflect.DeepEqual(input, want) {        log.Printf("returned %+v, want %+v", p, want)    }}
查看完整描述

3 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

我认为这是一个编辑错误。我猜你想编码的是:

"reflect.DeepEqual(p, want)"

但你实际上写道:

"reflect.DeepEqual(input, want)"


查看完整回答
反对 回复 2021-09-27
  • 3 回答
  • 0 关注
  • 241 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信