syscallErrnoError
int
type ErrCode int
const
const (
ERR_INVALID_PARAM ErrCode = 1 // 非法参数
ERR_INVALID_COOKIE ErrCode = 2 // 无效cookie
// ...
)
go generatestringer
//go:generate stringer -type=ErrCode --linecomment
errcode_string.go
// Code generated by "stringer -type=ErrCode --linecomment"; DO NOT EDIT.
package code
import "strconv"
const _ErrCode_name = "无效参数无效cookie"
var _ErrCode_index = [...]uint8{0, 12, 24}
func (i ErrCode) String() string {
i -= 1
if i < 0 || i >= ErrCode(len(_ErrCode_index)-1) {
return "ErrCode(" + strconv.FormatInt(int64(i+1), 10) + ")"
}
return _ErrCode_name[_ErrCode_index[i]:_ErrCode_index[i+1]]
}
ErrCodeerror
func (e ErrCode) Error() string {
return e.String()
}
ErrCodeerror
go generate可以放在项目打包脚本中执行。
测试:
package main
import (
"fmt"
"github.com/darjun/code" // 这是我的包,替换一下
)
func main() {
var a error = code.ERR_INVALID_PARAM
fmt.Println(a)
// 输出:无效参数
var b error = code.ERR_INVALID_COOKIE
fmt.Println(b)
// 输出:无效cookie
}