package myRedis type InterfaceResult struct { Result interface{} Err error } func NewInterfaceResult(result interface{}, err error) *InterfaceResult { return &InterfaceResult{Result: result, Err: err} } func (t *InterfaceResult) Unwrap() interface{} { if t.Err != nil { panic(t.Err) } return t.Result } func (t *InterfaceResult) UnwrapOr(a interface{}) interface{} { if t.Err != nil { return a } return t.Result }