我们提供安全,免费的手游软件下载!
一般来说,写Go语言的开发者,除非是在编写算法,否则在处理业务代码时可能会为优雅的异常处理而感到困扰。这是因为Go语言的设计者们似乎认为语法糖是一种低级的东西。然而,在大多数公司的业务逻辑中,缺乏语法糖会导致代码非常丑陋,难以维护。
为了让Go代码更具可读性,我们需要给Go语言加点糖!
go get github.com/lingdor/spannerlib
通常我们需要这样写代码:
num, numErr := strconv.Itoa("123")
if numErr != nil {
panic(numErr)
}
age, ageErr := strconv.Itoa("18")
if ageErr != nil {
panic(ageErr)
}
ginRoute.use(func ContextInit() gin.HandlerFunc {
return func(c *gin.Context) {
if err := recover(); err != nil {
log.Error(fmt.Sprintf("%v", err))
if msg, ok := E.GetErrorData[string](err); ok {
c.JSON(http.StatusOK, gin.H{
"code": 1,
"message": msg,
})
return
}
}
})
ginRoute.Get("/hello",func(c *gin.Context){
year := E.Must1(strconv.Atoi(c.Query("year")))
month := E.Must1(strconv.Atoi(c.Query("month))
//others
})
//or
ginRoute.Get("/hello2",func(c *gin.Context){
year := E.Catch1(strconv.Atoi(c.Query("year"))).IfErrorData("year格式不正确").Must()
month := E.Catch1(strconv.Atoi(c.Query("month"))).IfErrorData("month格式不正确").Must()
// others
})
err := fmt.Errorf("123")
err := errors.Wrap(err, 0, "msg")
fmt.Printf("%v", err)
输出:
Exception MSG
testing.tRunner(/usr/local/go/src/testing/testing.go:1689)
if str.StartWith("hello world", "hello") {
//true
}
fmt.Println(E.Must1(StringPick("123", "", "")))
输出:
123
热门资讯