我多年来一直在使用 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?
块是匹配大括号内的可能为空的声明和语句序列。
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)
这是块的不寻常使用。