golang gin 中一段看着''奇怪''的代码

by kingzcheung on February 28, 2018

使用 gin 框架时,在文档中发现了一段有意思的代码:

(gin的github地址:https://github.com/gin-gonic/gin)

        // Simple group: v1
    v1 := router.Group("/v1")
    {
        v1.POST("/login", loginEndpoint)
        v1.POST("/submit", submitEndpoint)
        v1.POST("/read", readEndpoint)
    }

golang 语法规定,第一个大括号是不可以换行的,不然会无法通过编译。开始没有仔细看,以为这是作者写文档写错了。然后亲自写了才发现,这是会报错的。看了很久才发现,原来是自己眼睛有问题,上面这根本不是一个代码块,两是一个方法调用加一个代码块,只是写着没有格开而已。

       // Simple group: v1
    v1 := router.Group("/v1")
       //v1 router list
    {
        v1.POST("/login", loginEndpoint)
        v1.POST("/submit", submitEndpoint)
        v1.POST("/read", readEndpoint)
    }

这样看就不容易误解了。也就是,golang 也允许使用单独的{}来限定使用域。