我有一个包含很多字段的结构,我必须检查这些字段中是否有任何一个为空,而不必手动键入每个字段名称。该字段的类型始终是一个指针,因此我可以进行检查而不必担心零值。我正在尝试使用反射包来解决这个问题,但它似乎无法正常工作,我不知道为什么。这是一个复制我的问题的游乐场:http ://play.golang.org/p/LOb6a8eklE如您所见,如果我手动检查一切正常。当被要求打印时,它也会打印 null,但在比较时它的计算结果为 false。关于发生了什么的任何想法?我的主要猜测是因为 Interface() 的返回类型显然是 interface{},并且通过在其中存储“null”,它不再使它成为“null”。有什么办法吗?
1 回答
米脂
TA贡献1836条经验 获得超3个赞
使用IsNil()确定指针是否为 nil。
该表达式v.Interface() == nil
始终为 false,因为 Interface() 返回具有关联类型的值。
有关此主题的更多信息,请参阅nil 错误常见问题解答。
- 1 回答
- 0 关注
- 242 浏览
添加回答
举报
0/150
提交
取消