type Status string
func (s Status) Validate() error { ... }
type Entity struct {
Status Status `vd:"evalfn($)"`
}
type ValidateFn interface {
Validate() error
}
func useValidateFn(args ...interface{}) error {
target, ok := args[0].(ValidateFn)
if !ok {
return fmt.Errorf("evalfn need struct implement ValidateFn interface")
}
return target.Validate()
}
场景
对自定义枚举值想调用自己的validate method
比如
这里args[0]的值类型会是string