自定义函数的逻辑运算问题
Closed this issue · 3 comments
lileibuaa commented
type TStruct struct {
TOk string `vd:"gt($,'0') && gt($, '1')" json:"t_ok"`
//TFail string `vd:"gt($,'0')" json:"t_fail"`
}
func TInit() {
validator.RegFunc("gt", func(args ...interface{}) error {
return errors.New("force error")
})
}
func Test_tagexpr(t *testing.T) {
TInit()
fmt.Printf("%+v\n", validator.Validate(&TStruct{TOk: "1" /*TFail: "1"*/}))
}
如上代码
自定义了“gt”函数,TFail字段单独使用gt函数,validate会报错,符合预期;
但是TOk字段,对两个gt函数执行了逻辑运算,validate会通过,不符合预期。
andeya commented
lileibuaa commented
了解了。我自动拉取的是2.7.4版本。
2.7.4以后版本加了go mod文件,没能通过go get -u更新。
andeya commented
import 路径加 /v2 ,另外不建议加 -u ,它会更新全部依赖,可能出现不符合预期的bug