在Go HTTP服务器中,我正在使用VS Code作为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")
...但是
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
的任何规则或选项来关闭此特定格式设置规则。 And documentation is sparse。 最佳答案
有趣的是,它确实以这种方式映射了格式:
m := map[string]http.HandlerFunc{
"/": Foobar.NewAuthHandler(http.HandlerFunc(handleGetNamespaces)),
"/{namespace}": Foobar.NewAuthHandler(http.HandlerFunc(handleGetNamespaces)),
}
这将是一种以更好的格式显示路线的方法(然后通过map运行并将其添加到路由器)。
另外,如果您希望保留此空间,可以为space eater牺牲星星和斜线:
subRouter.Handle("/" /* */, Foobar.NewAuthHandler(http.HandlerFunc(handleGetNamespaces))).Methods("GET")
subRouter.Handle("/{namespace}" /* */, Foobar.NewAuthHandler(http.HandlerFunc(handleGetKeys))).Methods("GET")
或者只是接受与其他所有人相同颜色的自行车棚。
关于go - 如何使用gofmt对齐参数和分配?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46940772/