博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Go结构体标签表达式v1.0发布,参数校验杀手锏
阅读量:6821 次
发布时间:2019-06-26

本文共 575 字,大约阅读时间需要 1 分钟。

go-tagexpr 是一个由字节跳动开源的 Golang 结构体标签表达式解释器。它主要应用于各种场景的请求参数校验,且性能高效,成为参数校验的杀手锏。

主要特性:

  • 支持各种常用运算符
  • 支持访问数组、切片、字典的成员
  • 支持访问当前结构中任意字段
  • 支持访问嵌套字段、非导出字段等
  • 内置 len、sprintf、regexp 函数
  • 支持单表达式与多表达式两种定义模式
  • 提供了参数校验子包

看一个参数校验的小例子:

package validator_testimport (	"fmt"	"github.com/bytedance/go-tagexpr/validator")func Example() {	var vd = validator.New("vd")	type InfoRequest struct {		Name string `vd:"($!='Alice'||(Age)$==18) && regexp('\\w')"`		Age  int    `vd:"$>0"`	}	info := &InfoRequest{Name: "Alice", Age: 18}	fmt.Println(vd.Validate(info) == nil)	// Output:	// true}复制代码

更多语法详情,请转到Github源码仓库:

转载地址:http://mwmzl.baihongyu.com/

你可能感兴趣的文章
visual studio用"查找替换"来删掉源代码中所有//方式的纯注释和空行
查看>>
PHP数据类型
查看>>
第184天:js创建对象的几种方式总结
查看>>
第201天:js---实现继承的5种方式
查看>>
mysql 中varchar(50)最多能存多少个汉字
查看>>
TCP可靠传输及流量控制实现原理
查看>>
页面通过ajax传值到后台,后台返回值展示在页面输入框
查看>>
poi3.8 word
查看>>
react-router-dom实现全局路由登陆拦截
查看>>
STL基础3:map
查看>>
个人作业4——alpha阶段个人总结
查看>>
Oracle11g 新功能
查看>>
Groovy
查看>>
滑动窗口的最大值
查看>>
[转]BT常用渗透命令
查看>>
面向.Net程序员的前端优化
查看>>
HTTPS到底是个什么鬼?
查看>>
Yii框架中ActiveRecord使用Relations
查看>>
leetcode 55.跳跃游戏
查看>>
flexPaper +swftools实现文档在线阅读
查看>>