原文地址:Go小优化之Gin框架的ShouldBind绑定的struct字段bind设置为required时验证零值失败问题处理~
废话不多说,先来看下通常情况下咱们定义的结构体的类型:
type GetInferenceTaskRule struct {
Page int `form:"page" binding:"required"`
Size int `form:"size" binding:"required"`
IsOnMyself int `form:"is_on_myself" binding:"required"`
}
在上面的案例中,IsOnMyself这个字段的值只能为0或是1,但是当咱们传0的时候,这个字段的校验居然无法通过,提示咱们参数错误。
想要验证通过也很简单,我们只要把类型定义为指针类型即可接受零值。
修改后可用的的结构体如下:
type GetInferenceTaskRule struct {
Page int `form:"page" binding:"required"`
Size int `form:"size" binding:"required"`
IsOnMyself *int `form:"is_on_myself" binding:"required"`
}
接收到的这个*int怎么用呢?
pageonmyself := *form.IsOnMyself
按上面这行代码取一下就可以拿到原始的int类型的数据了。
这一波儿完美的操作下来之后,我们就可以愉快的编码了。
个人认为Go里面的gin框架的这个ShouldBind的功能是很强大的,非但可以接收GET、POST,还可以搞定Json、XML等这些,各位大佬有兴趣的可以多研究一下。
至此,本次分享就结束了,后期会慢慢补充。
以上仅为个人观点,不一定准确,能帮到各位那是最好的。
好啦,到这里本文就结束了,喜欢的话就来个三连击吧。
扫码关注公众号,获取更多优质内容。