在go HTTP服务器中,我使用VS代码作为IDE进行维护--只要保存了文件,就会执行gofmt命令,但为了提高可读性,不需要手动对齐。
例如,我的代码如下所示:
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将将其压缩为:
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关闭这个特定格式规则的任何规则或选项。而且文档很少。
发布于 2017-10-25 19:59:06
有趣的是,它确实以这种方式设置了映射格式:
m := map[string]http.HandlerFunc{
"/": Foobar.NewAuthHandler(http.HandlerFunc(handleGetNamespaces)),
"/{namespace}": Foobar.NewAuthHandler(http.HandlerFunc(handleGetNamespaces)),
}这将是以更好的格式呈现您的路由的一种方法(然后运行地图并将它们添加到路由器)。
或者,如果你想保留这个空间,你可以牺牲星星和斜线给太空食客。
subRouter.Handle("/" /* */, Foobar.NewAuthHandler(http.HandlerFunc(handleGetNamespaces))).Methods("GET")
subRouter.Handle("/{namespace}" /* */, Foobar.NewAuthHandler(http.HandlerFunc(handleGetKeys))).Methods("GET")或者接受和其他人一样的自行车颜色。
https://stackoverflow.com/questions/46940772
复制相似问题