您的位置 首页 golang

Go 结构体标签表达式 go-tagexpr

go-tagexpr 由字节跳动开源,实现了 Golang 结构体 标签表达式解释器,可用于各种场景的请求参数校验。

主要特性:

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

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

package validator_test
import (
	"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:

文章来源:智云一二三科技

文章标题:Go 结构体标签表达式 go-tagexpr

文章地址:https://www.zhihuclub.com/101185.shtml

关于作者: 智云科技

热门文章

网站地图