Go中的类型声明失败

时间:2018-08-16 07:37:01

标签: go

我在Go应用程序中使用validator.v9,如果发生验证错误,我想将其转换为ValidationErrors包中定义的validator.v9

// ValidationErrors is an array of FieldError's
// for use in custom error messages post validation. 
type ValidationErrors []FieldError

这是一个简单的断言代码。 myErrorerror

type errValidation struct {
    error
}

func (e errValidation) MarshalJSON() ([]byte, error) {
    outputBody := map[string]interface{}{}

    myError := e.error
    fmt.Println(reflect.TypeOf(e.error))
    if _, ok := myError.(validator.ValidationErrors); ok {
        fmt.Println("OK")
    } else{
        fmt.Println("cast fails")
    }
    // ....
}

转换始终失败。但是在调试器中,我看到该类型正确

enter image description here

我的代码怎么了?

e.error的确切类型是errValidation

0 个答案:

没有答案
相关问题