来自gin-gonic文档的语法问题

时间:2018-12-26 19:05:34

标签: go gin-gonic

多年来我一直在使用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方法传入/处理?

1 个答案:

答案 0 :(得分:3)

  

The Go Programming Language Specification

     

Blocks

     

一个块可能是空的声明和语句序列   在匹配的括号内。

     

Declarations and scope

     

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

这是对块的不寻常使用。