比较两种相同类型的结构

时间:2018-05-03 12:15:00

标签: go go-reflect

我所处的情况:

我正在编写一个api测试工具。并希望将实际的api结果与预期结果进行比较。

  1. 我正在访问json API并将结果解析为struct(api_result)
  2. 我从本地存储加载预定义的json,并将其解析为相同类型的struct(expected_result)
  3. 现在我想比较一下
  4. 我要存档的内容:

    应根据expected_result中的字段比较类型结果的这两个结构。

    示例

    • expected_result的字段为b1,b2,b4
    • api_result有字段b2,b4,b5,b6

    现在我只想比较字段b1,b2,b4以及它们是否为空(0,"",nil)。

    api_result中的其他字段并不重要。

    目前已尝试

    我已经挖到了reflect.DeepEqual()然后进入go-cmp。但两者都是比较函数是(或必须)对称的问题(func(x,y)== func(y,x))。

    通过这种对称性,我可以区分两个比较项目。

    非常感谢你的想法和帮助!

0 个答案:

没有答案