检查struct的任何字段是否为nil

时间:2016-04-23 08:09:13

标签: go

如果有任何干净的方法来检查nil的任何字段值是否为type test_struct struct { Name string `json:"name" binding:"required"` Email string `json:"email" binding:"required"` Message string `json:"message" binding:"required"` }

假设我有

struct

使用this paper我将var temp test_struct c.Bind(&temp) 的值填充为

temp.Name

一切正常,但我想检查temp.Emailtemp.Messagenil是否nil,确保我们只需比较每个字段即可查看使用if temp.Name == nilGo等等,但我正在寻找更清晰的版本,有没有?

UPD :由于缺乏Bind语言的知识,我不知道gin包的binding:"required"函数返回错误如果我们传递带有err字段的结构。感谢@ matt.s我明白了。所以答案是检查var temp test_struct err := c.Bind(&temp) if err != nil { // Do my stuff(some of fields are not set) }

{{1}}

1 个答案:

答案 0 :(得分:3)

您应首先检查Bind是否未返回错误。如果没有,则所有字段将被设置为其适当的值,或者如果不是则初始化为零值。这意味着保证字符串不是nil(尽管如果它们没有值,它们将被设置为"")。