使用stringer
生成错误码的String()
方法,使得错误码实现fmt.Stringer
的接口。code到错误描述的映射关系。
安装
go install golang.org/x/tools/cmd/stringer@latest
我们先自定义一个实现error
接口的错误类型。如下所示。
package errx
import (
"fmt"
"strings"
)
type ErrCode int
func (e ErrCode) Error() string {
return fmt.Sprintf("%d@%s", e, e.String())
}
func ErrorIs(err error, code ErrCode) bool