gpt4 book ai didi

reflection - 使用反射包比较指针值

转载 作者:数据小太阳 更新时间:2023-10-29 03:29:01 26 4
gpt4 key购买 nike

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

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

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

如您所见,如果我手动检查一切正常。当被要求打印时,它也打印 null,但在比较时它的计算结果为 false。

对正在发生的事情有什么想法吗?

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

谢谢!

最佳答案

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

playground

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

参见 nil error FAQ有关此主题的更多信息。

关于reflection - 使用反射包比较指针值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26346530/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com