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 基于单片机的靶位控制系统
  • ¥15 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错