在我的應(yīng)用程序中,我用來(lái)validator.v9驗(yàn)證我的模型。驗(yàn)證后我可以投射error界面并且成功,我在控制臺(tái)上看到“OK”err := v.ModelValidator.Struct(model)if _, ok := err.(validator.ValidationErrors); ok { fmt.Println("ValidateModel: OK")} else{ fmt.Println("ValidateModel: FALSE")}我需要將此對(duì)象包裝到另一個(gè)對(duì)象以供將來(lái)處理type errValidation struct { error}func ValidationError(err error) error { return errValidation{err}}但是,如果我嘗試將這個(gè)包裝對(duì)象轉(zhuǎn)換回上面validator.ValidationErrors第一個(gè)案例的轉(zhuǎn)換正下方的同一函數(shù)中,它將失敗e := ValidationError(err)if _, ok := e.(validator.ValidationErrors); ok { fmt.Println("ValidationError: OK")} else{ fmt.Println("ValidationError: FALSE")}我在控制臺(tái)看到ValidateModel: OKValidationError: FALSE我怎樣才能使這個(gè)演員表從包裝的對(duì)象中發(fā)揮作用?ValidationErrors從"gopkg.in/go-playground/validator.v9"看起來(lái)像這樣type ValidationErrors []FieldErrorfunc (ve ValidationErrors) Error() string { //.....}
如果我包裝我的對(duì)象,Golang 轉(zhuǎn)換為自定義類型會(huì)失敗
慕碼人8056858
2023-03-21 15:12:09