首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用gofmt对齐参数和分配?

如何使用gofmt对齐参数和分配?
EN

Stack Overflow用户
提问于 2017-10-25 19:37:05
回答 1查看 867关注 0票数 1

在go HTTP服务器中,我使用VS代码作为IDE进行维护--只要保存了文件,就会执行gofmt命令,但为了提高可读性,不需要手动对齐。

例如,我的代码如下所示:

代码语言:javascript
复制
subRouter.Handle("/"                    , Foobar.NewAuthHandler(http.HandlerFunc(handleGetNamespaces ))).Methods("GET")
subRouter.Handle("/{namespace}"         , Foobar.NewAuthHandler(http.HandlerFunc(handleGetKeys       ))).Methods("GET")
subRouter.Handle("/{namespace}"         , Foobar.NewAuthHandler(http.HandlerFunc(handleClearNamespace))).Methods("DELETE")
subRouter.Handle("/{namespace}/{objKey}", Foobar.NewAuthHandler(http.HandlerFunc(handleGetObject     ))).Methods("GET")
subRouter.Handle("/{namespace}/{objKey}", Foobar.NewAuthHandler(http.HandlerFunc(handleTouchObject   ))).Methods("HEAD")
subRouter.Handle("/{namespace}/{objKey}", Foobar.NewAuthHandler(http.HandlerFunc(handlePutObject     ))).Methods("PUT")
subRouter.Handle("/{namespace}"         , Foobar.NewAuthHandler(http.HandlerFunc(handlePostObject    ))).Methods("POST")
subRouter.Handle("/{namespace}/{objKey}", Foobar.NewAuthHandler(http.HandlerFunc(handleDeleteObject  ))).Methods("DELETE")

...but gofmt将将其压缩为:

代码语言:javascript
复制
subRouter.Handle("/", Foobar.NewAuthHandler(http.HandlerFunc(handleGetNamespaces))).Methods("GET")
subRouter.Handle("/{namespace}", Foobar.NewAuthHandler(http.HandlerFunc(handleGetKeys))).Methods("GET")
subRouter.Handle("/{namespace}", Foobar.NewAuthHandler(http.HandlerFunc(handleClearNamespace))).Methods("DELETE")
subRouter.Handle("/{namespace}/{objKey}", Foobar.NewAuthHandler(http.HandlerFunc(handleGetObject))).Methods("GET")
subRouter.Handle("/{namespace}/{objKey}", Foobar.NewAuthHandler(http.HandlerFunc(handleTouchObject))).Methods("HEAD")
subRouter.Handle("/{namespace}/{objKey}", Foobar.NewAuthHandler(http.HandlerFunc(handlePutObject))).Methods("PUT")
subRouter.Handle("/{namespace}", Foobar.NewAuthHandler(http.HandlerFunc(handlePostObject))).Methods("POST")
subRouter.Handle("/{namespace}/{objKey}", Foobar.NewAuthHandler(http.HandlerFunc(handleDeleteObject))).Methods("DELETE")

我看不到gofmt关闭这个特定格式规则的任何规则或选项。而且文档很少

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-25 19:59:06

有趣的是,它确实以这种方式设置了映射格式:

代码语言:javascript
复制
m := map[string]http.HandlerFunc{
        "/":            Foobar.NewAuthHandler(http.HandlerFunc(handleGetNamespaces)),
        "/{namespace}": Foobar.NewAuthHandler(http.HandlerFunc(handleGetNamespaces)),
    }

这将是以更好的格式呈现您的路由的一种方法(然后运行地图并将它们添加到路由器)。

或者,如果你想保留这个空间,你可以牺牲星星和斜线给太空食客

代码语言:javascript
复制
subRouter.Handle("/" /*             */, Foobar.NewAuthHandler(http.HandlerFunc(handleGetNamespaces))).Methods("GET")
subRouter.Handle("/{namespace}" /*  */, Foobar.NewAuthHandler(http.HandlerFunc(handleGetKeys))).Methods("GET")

或者接受和其他人一样的自行车颜色。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46940772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档