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

Go 结构体标签表达式 go-tagexpr主要特性:支持各种常用运算符支持访问数组、切片、字典的成员支持访问当前结构中任意字段支持访问嵌套字段、非导出字段等内置len、sprintf、r

大家好,欢迎来到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

(0)
上一篇 2024-08-21 13:45
下一篇 2024-08-21 14:15

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信