使用反射包比较指针值



我有一个有很多字段的结构,我必须检查这些字段中是否有任何字段为null,而不必手动键入每个字段名。字段的类型始终是指针,因此我可以进行检查,而不必担心零值。

我正试图使用反射包来解决这个问题,但它似乎不能正常工作,我不知道为什么。

这是一个复制我的问题的操场:
http://play.golang.org/p/LOb6a8eklE

正如你所看到的,如果我用手检查,一切都很好。当被要求打印时,它也会打印null,但当进行比较时,结果为false。

有什么想法吗?

我的主要猜测是,Interface()的返回类型显然是接口{},通过在其中存储"null",它不再使其为"null"。有什么办法吗?

谢谢!

使用IsNil()确定指针是否为零。

游乐场

表达式v.Interface() == nil始终为false,因为Interface()返回一个具有关联类型的值。

有关此主题的更多信息,请参阅无错误常见问题解答。

最新更新