如果有任何干净的方法来检查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.Email
,temp.Message
,nil
是否nil
,确保我们只需比较每个字段即可查看使用if temp.Name == nil
:Go
等等,但我正在寻找更清晰的版本,有没有?
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}}
答案 0 :(得分:3)
您应首先检查Bind是否未返回错误。如果没有,则所有字段将被设置为其适当的值,或者如果不是则初始化为零值。这意味着保证字符串不是nil(尽管如果它们没有值,它们将被设置为""
)。