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

golang中struct的tag -简记

今天 简单整理一下,关于golang中struct的tag

type User struct {UId  int    `gorm:"column:uid;type:bigint;unique_index;not null;comment:用户id"`Name string `json:"name"`Age  int    `bson:"age"`From string `binding:"required"`
}

平时常用的 也就是这个几个tag,简单梳理一下

gorm

这个就是gorm 与数据库交互时的一些标识,column 字段名;type 类型;comment备注;还有唯一索引以及默认值

json

json序列化时,读取到的tag,当json:"-"时,json序列化时忽略这个字段,一个字段 它的jsonTag是啥,在序列化时,就会使用那个名称

bson

这个是在连接使用mongoDB时使用,与gorm的作用类似,一个是mysql一个是MG

binding

这个是参数绑定校验 validate 时使用

required :必填
omitempty:如果为空,就忽略
email:验证字符串是email格式;例:"email"
url:这将验证字符串值包含有效的网址;例:"url"
max:字符串最大长度;例:"max=20"
min:字符串最小长度;例:"min=6"
excludesall:不能包含特殊字符;例:"excludesall=0x2C"//注意这里用十六进制表示。
len:字符长度必须等于n,或者数组、切片、maplen值为n,即包含的项目数;例:"len=6"
eq:数字等于n,或者或者数组、切片、maplen值为n,即包含的项目数;例:"eq=6"
ne:数字不等于n,或者或者数组、切片、maplen值不等于为n,即包含的项目数不为n,其和eq相反;例:"ne=6"
gt:数字大于n,或者或者数组、切片、maplen值大于n,即包含的项目数大于n;例:"gt=6"
gte:数字大于或等于n,或者或者数组、切片、maplen值大于或等于n,即包含的项目数大于或等于n;例:"gte=6"
lt:数字小于n,或者或者数组、切片、maplen值小于n,即包含的项目数小于n;例:"lt=6"
lte:数字小于或等于n,或者或者数组、切片、maplen值小于或等于n,即包含的项目数小于或等于n;例:"lte=6"

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 枚举知识点(完结)
  • 从零开始学习机器学习,掌握AI未来的关键!
  • 嵌入式人工智能(40-基于树莓派4B的水滴传感器和火焰传感器)
  • c语言(8.1)
  • 二进制搭建 Kubernetes v1.20(中)
  • 【优秀python案例】基于Python的豆瓣电影TOP250爬虫与可视化设计与实现
  • Flutter 初识:数据表格和卡片
  • 介绍Servlet后端中两种接收参数方式req.getAttributer和req.getParameter的区别
  • OpenCV学习笔记 比较基于RANSAC、最小二乘算法的拟合
  • 以一个开发者的身份浅谈Memcached
  • SQL Server数据清洗工坊:打造你的自定义清洗规则
  • 某RED书旋转验证码识别(一)
  • 路径规划 | Q-learning机器人路径规划算法(Matlab)
  • Linux——多线程
  • 程序员纯粹八股文的危害有哪些,应该如何来解决?
  • 收藏网友的 源程序下载网
  • cookie和session
  • ES学习笔记(12)--Symbol
  • gulp 教程
  • LeetCode18.四数之和 JavaScript
  • LintCode 31. partitionArray 数组划分
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • mysql innodb 索引使用指南
  • php中curl和soap方式请求服务超时问题
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 代理模式
  • 基于组件的设计工作流与界面抽象
  • 力扣(LeetCode)22
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 项目实战-Api的解决方案
  • 学习JavaScript数据结构与算法 — 树
  • # Panda3d 碰撞检测系统介绍
  • #define用法
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (BAT向)Java岗常问高频面试汇总:MyBatis 微服务 Spring 分布式 MySQL等(1)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (十一)c52学习之旅-动态数码管
  • (四)库存超卖案例实战——优化redis分布式锁
  • (四)事件系统
  • (转)Oracle 9i 数据库设计指引全集(1)
  • .net mvc actionresult 返回字符串_.NET架构师知识普及
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .NetCore项目nginx发布
  • .Net程序帮助文档制作
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • .NET委托:一个关于C#的睡前故事
  • /dev下添加设备节点的方法步骤(通过device_create)
  • @GlobalLock注解作用与原理解析
  • @Transactional事务注解内含乾坤?
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [ C++ ] 继承