大家好,欢迎来到IT知识分享网。
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:"gt;0"` } info := &InfoRequest{Name: "Alice", Age: 18} fmt.Println(vd.Validate(info) == nil) // Output: // true }
项目地址
- github:https://github.com/bytedance/go-tagexpr/
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/79440.html