go validator 值为 0 required 验证

简介: go validator 值为 0 required 验证

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站

错误示范

package main
import (
  "fmt"
  "github.com/go-playground/validator/v10"
)
type Person struct {
  Name  string `validate:"required"`
  State int    `validate:"required,oneof=0 1"`
}
func main() {
  validate := validator.New()
  p := Person{
    Name:  "abcc",
    State: 0,
  }
  err := validate.Struct(p)
    // Key: 'Person.State' Error:Field validation for 'State' failed on the 'required' tag
  fmt.Println(err)
}

在这个例子中,虽然我们的 State 字段传入了值,但是验证却不通过。

正确示范

在使用 go-playground/validator/v10 验证一些空值的时候,需要使用指针类型。

package main
import (
  "fmt"
  "github.com/go-playground/validator/v10"
)
type Person struct {
  Name  string `validate:"required"`
    // 使用指针类型
  State *int   `validate:"required,oneof=0 1"`
}
func main() {
  validate := validator.New()
  state := 0
  p := Person{
    Name:  "abcc",
    State: &state, // 传入指针
  }
  err := validate.Struct(p)
    // <nil>
  fmt.Println(err)
}


目录
相关文章
|
1月前
|
数据采集 网络协议 测试技术
使用Go Validator在Go应用中有效验证数据
使用Go Validator在Go应用中有效验证数据
|
1月前
|
数据采集 网络协议 测试技术
使用Go Validator在Go应用中有效验证数据
使用Go Validator在Go应用中有效验证数据
|
14天前
|
IDE Go 开发工具
Go Error module declares its path as but was required as解决方案
文章提供了一个解决方案,用于处理在Go工程中将依赖的仓库从A更换为B(即使它们完全相同)时遇到的路径声明错误,建议通过发布新版本来解决此问题。
34 0
|
3月前
|
中间件 Go
go语言后端开发学习(三)——基于validator包实现接口校验
go语言后端开发学习(三)——基于validator包实现接口校验
|
3月前
|
存储 前端开发 中间件
Go Web 开发 Demo【用户登录、注册、验证】(3)
Go Web 开发 Demo【用户登录、注册、验证】
|
3月前
|
JSON 算法 Go
go语言后端开发学习(一)——JWT的介绍以及基于JWT实现登录验证
go语言后端开发学习(一)——JWT的介绍以及基于JWT实现登录验证
|
3月前
|
JSON 前端开发 Java
Go Web 开发 Demo【用户登录、注册、验证】(4)
Go Web 开发 Demo【用户登录、注册、验证】
|
3月前
|
Go 数据库
Go Web 开发 Demo【用户登录、注册、验证】(2)
Go Web 开发 Demo【用户登录、注册、验证】
|
1天前
|
程序员 Go PHP
为什么大部分的 PHP 程序员转不了 Go 语言?
【9月更文挑战第8天】大部分 PHP 程序员难以转向 Go 语言,主要因为:一、编程习惯与思维方式差异,如语法风格和编程范式;二、学习成本高,需掌握新知识体系且面临项目压力;三、职业发展考量,现有技能价值及市场需求不确定性。学习新语言虽有挑战,但对拓宽职业道路至关重要。
23 10
|
2天前
|
算法 程序员 Go
PHP 程序员学会了 Go 语言就能唬住面试官吗?
【9月更文挑战第8天】学会Go语言可提升PHP程序员的面试印象,但不足以 solely “唬住” 面试官。学习新语言能展现学习能力、拓宽技术视野,并增加就业机会。然而,实际项目经验、深入理解语言特性和综合能力更为关键。全面展示这些方面才能真正提升面试成功率。
20 10