go-tagexpr 是一个由字节跳动开源的 Golang 结构体标签表达式解释器。它主要应用于各类场景的请求参数校验,且性能高效,成为参数校验的杀手锏。git
主要特性:github
看一个参数校验的小例子:数组
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源码仓库:github.com/bytedance/g…函数