多年来我一直在使用Node / Python进行开发,并且在假期期间,我一直在尝试扩展对Go的了解。我有一个宠物项目,我一直在努力学习。
在阅读gin-gonic documentation时,发现语法无法缠住我的脑袋。
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")
}
基本上,router.Group()
方法看起来像一个结构,但是我不太确定这里的机制是什么……它没有用括号括起来。该对象如何通过Group
方法传入/处理?
答案 0 :(得分:3)
The Go Programming Language Specification
一个块可能是空的声明和语句序列 在匹配的括号内。
Go的词法作用域是使用块。
例如,init : String -> (Model, Cmd Msg)
init questions =
(Model (getQuestions questions) 0 True, Cmd.none)
getQuestions : String -> List QuestionToAnswer
getQuestions questions =
case (decodeString questionDecoder questions) of
Ok question ->
[question]
_ ->
[ QuestionToAnswer "me" "me" "me" "me" "me" "me"]
方法调用语句形成一个块:
v1.POST
这是对块的不寻常使用。