Переглянути джерело

设置服务码、错误码匹配函数新增泛型支持

jys 2 роки тому
батько
коміт
ebeac50dd8
1 змінених файлів з 5 додано та 4 видалено
  1. 5 4
      v2alpha/public.go

+ 5 - 4
v2alpha/public.go

@@ -107,19 +107,20 @@ func ParseCode(err error) *withCode {
 	}
 }
 
-func IsCode(err error, code int) bool {
+// IsCode 判断某个错误是否为某个错误码
+func IsCode[T codeType](err error, code T) bool {
 	var target *withCode
 	if !As(err, &target) {
 		return false
 	}
-	return target.BusinessCode == code
+	return target.BusinessCode == int(code)
 }
 
 // SetServiceCode 设置服务错误码
 // 例如设置服务码为300000,用户不存在错误码为2001,
 // 那么最终业务错误码为302001
-func SetServiceCode(code int) {
-	serviceCode = code
+func SetServiceCode[T codeType](code T) {
+	serviceCode = int(code)
 }
 
 // outerMsg 获取最外层的错误信息