【发布时间】:2013-09-30 12:48:12
【问题描述】:
在某处是否有标准的 Google Go 编码约定文档来设置在 Go 源代码中缩进时首选制表符还是空格?
如果有的话,官方的推荐是什么?
【问题讨论】:
标签: go formatting indentation gofmt
在某处是否有标准的 Google Go 编码约定文档来设置在 Go 源代码中缩进时首选制表符还是空格?
如果有的话,官方的推荐是什么?
【问题讨论】:
标签: go formatting indentation gofmt
官方建议使用
格式化你的代码go fmt
或者直接使用 gofmt 命令
gofmt -w .
您可以在 golang.org 博客上here 或从Effective go 文档中了解更多信息:
缩进
我们使用制表符进行缩进,gofmt 默认发出它们。仅在必要时使用空格。
【讨论】:
go fmt”(注意还有gofmt)。我要强调的是,Go 做到了这一点,正确不仅仅是通过声明一个策略,而是通过采用一个强制执行它的工具。这种情况并不常见,因此请尝试对这个想法低头并采用go fmt。请注意,甚至还有自动化解决方案(例如,Vim 的官方 Go 插件支持 :Fmt 命令,IIRC)。
编辑 2: 他在底部的原始答案现在不正确。 linked source file(当前 30/12/2019)的正确部分是:
Gofmt 格式化 Go 程序。 它使用制表符进行缩进,使用空白进行对齐。 对齐假设编辑器使用的是固定宽度的字体。
感谢TehSphinX 指出这一点!
此行下方的所有信息现在都不正确
编辑:底部的原始答案现在不正确。链接源文件的正确部分(当前 25/07/2014)是:
Gofmt 格式化 Go 程序。
它使用制表符(宽度 = 8)进行缩进,使用空白进行对齐。
原始答案(已弃用):
Formatting control flags:
-comments=true
Print comments; if false, all comments are elided from the output.
-tabs=true
Indent with tabs; if false, spaces are used instead.
-tabwidth=8
Tab width in spaces.
【讨论】:
-tabs 和 -tabwidth 是 gone(至少 -comments 不再记录;没有仔细查看)
gofmt 命令的文档中不再提及制表符宽度。它已在此处删除:github.com/golang/go/commit/…