bytedance/go-tagexpr

RegFunc中支持返回string的custom type吗

byteneco opened this issue · 0 comments

场景

对自定义枚举值想调用自己的validate method

比如

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()
}

这里args[0]的值类型会是string