douxian8883 2018-12-26 19:05
浏览 66
已采纳

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

I have been developing in Node/Python for years, and over the holiday I have been trying to expand my knowledge of Go. I have a pet project that I've been working on to learn it.

As I have been reading the gin-gonic documentation, I found syntax that I can't wrap my head around.

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")
}

Basically, it looks like the router.Group() method takes in a struct, but I am not quite sure what the mechanics are here... It's not wrapped in parentheses. How is this object being passed in/handled by the Group method?

  • 写回答

1条回答 默认 最新

  • dongzhiyan5693 2018-12-26 19:23
    关注

    The Go Programming Language Specification

    Blocks

    A block is a possibly empty sequence of declarations and statements within matching brace brackets.

    Declarations and scope

    Go is lexically scoped using blocks.


    For example, the v1.POST method call statements form a block:

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

    This is an unusual use of blocks.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 vue2(标签-chrome|关键词-浏览器兼容)
  • ¥15 python网络流自动生成系统 医学领域
  • ¥15 sql查询仓库里都有什么
  • ¥15 代码的修改,添加和运行完善
  • ¥15 krpano-场景分组和自定义地图分组
  • ¥15 lammps Gpu加速出错
  • ¥15 关于PLUS模型中kapaa值的问题
  • ¥15 关于博途V17进行仿真时无法建立连接问题
  • ¥15 机器学习教材中的例题询问
  • ¥15 求.net core 几款免费的pdf编辑器