`gin-gonic` 文档中的语法问题

Spe*_*thy 3 go go-gin

我多年来一直在使用 Node/Python 进行开发,假期里我一直在努力扩展我对 Go 的了解。我有一个我一直在努力学习它的宠物项目。

当我一直在阅读gin-gonic 文档时,我发现我无法理解的语法。

func main() {
    router := gin.Default()

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

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

    router.Run(":8080")
}
Run Code Online (Sandbox Code Playgroud)

基本上,该router.Group()方法看起来像一个结构体,但我不太确定这里的机制是什么......它没有用括号括起来。这个对象是如何被方法传入/处理的Group

pet*_*rSO 5

Go 编程语言规范

块是匹配大括号内的可能为空的声明和语句序列。

声明和范围

Go 使用块进行词法范围。


例如,v1.POST方法调用语句形成一个块:

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

这是块的不寻常使用。