当前位置: 首页 > news >正文

go中validate包使用教程

文章目录

  • 前言
  • 安装
  • 简单使用
  • 错误处理
  • 翻译器
  • Validator库介绍
    • 校验语法常用标记
  • 自定义校验
    • 需求【校验车身颜色】

前言

在go项目中,经常有校验数据合法性的需求,比如邮箱、年龄、车牌号、网址、字符串长度、金额、枚举范围等。一个好的校验包能帮我们少写很多ifelse,提高系统的可维护性。
validate包内置了丰富的校验语法,包括字符串、数字、邮箱等,当然如果我们有定制化的校验提示文案或者校验规则,validate也支持定制化校验。

安装

# 安装validate包
$ go get github.com/go-playground/validator/v10
# 项目中引入包
import "github.com/go-playground/validator/v10"

简单使用

校验语法:在字段tag上,也就是字段类型后面的`xxx`里内容,加上validate:“yyy”,其中yyy就是validate的校验语法;
校验方法:使用err := validate.Struct(u)进行校验,err是校验结果
结果输出:我们可以对err进行反射判断处理,可以获取字段名等信息,定制化输出校验结果
下面是一个简单示例:


import ("fmt""github.com/go-playground/locales/zh"ut "github.com/go-playground/universal-translator""github.com/go-playground/validator/v10"zhTrans "github.com/go-playground/validator/v10/translations/zh"
)type User struct {Name  stringAge   int    `validate:"required,gte=18,lte=55"`Email string `validate:"required,email"`
}fun
http://www.lryc.cn/news/326470.html

相关文章:

  • canvas画带透明度的直线和涂鸦
  • linux命令 curl忽略https证书
  • 游戏引擎中网络游戏的基础
  • ES6(ECMAScript 6)中常用的知识点总结(包含示例代码)
  • 老师人手必备的教学神器有哪些?这5款教学软件一定要知道!
  • 华为机试题-核酸检测人数
  • SQLAlchemy模型映射提示declarative_base() takes 0 positional arguments but 1 was given
  • linux系统Kubernetes工具ingress暴露服务
  • centos2anolis
  • Cesium安装部署运行
  • 【Android 内存优化】KOOM线程泄漏监控的实现源码分析
  • 【爬虫基础】第1讲 网络爬虫基本知识
  • scrapy爬虫框架
  • 【深度学习】基础知识
  • Electron应用自动更新实现及打包部署全攻略
  • 【爬虫基础】第6讲 opener的使用
  • Milvus 向量数据库:如何基于docker-compose在本地快速搭建测试环境
  • python --dejavu音频指纹识别
  • 完全二叉树的层序遍历[天梯赛]
  • C语言看完我这篇编译与链接就够啦!!!
  • 【React】react 使用 lazy 懒加载模式的组件写法,外面需要套一层 Loading 的提示加载组件
  • IDEA的Scala环境搭建
  • LeetCode第四天(448. 找到所有数组中消失的数字)
  • 【vivado】在原有工程上新建工程
  • (原型与原型链)前端八股文修炼Day5
  • 逐步学习Go-并发通道chan(channel)
  • 鸿蒙HarmonyOS应用开发之Node-API开发规范
  • 单例模式
  • Android OpenMAX - 开篇
  • ubuntu开启ssh服务