问题标签 [gofmt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
93828 浏览

go - Go 中的缩进:制表符还是空格?

在某处是否有标准的 Google Go 编码约定文档来设置在 Go 源代码中是否首选制表符或空格来缩进?

如果有的话,官方的建议是什么?

0 投票
2 回答
627 浏览

go - 用 gofmt 生成,替换变量值

“生成”工具的发布开辟了许多令人兴奋的可能性。我一直在努力让我的测试变得更好。我有一个查询外部 API 的函数,该 API 的位置在全局变量中定义。一个难题是用在“生成时间”确定的值替换该值。

我有:

运行 go generate 然后出错:

不能像这样使用占位符:

那是因为,当我编译生产代码时,源代码会被重写,因此后续的测试编译不再可以替换占位符(它已经被替换了)。

我意识到我有点滥用gofmt,但我宁愿不回去sed。什么是有效的go:generate陈述?

0 投票
1 回答
183 浏览

git - 在单独运行 go fmt 每次提交时,任何工具都会在 Git 中重新设置分支?

X我希望使用源代码格式化工具(如go fmtor )重建/重新设置 Git 分支中的所有提交indent

我希望工作流程大致包括创建一个新分支master并迭代以下内容,其中$_包括以下提交X

或者甚至可能

不过,我没想到会像那样-n一起--continue玩。此外,一个人应该自然而然地在完成时做出go fmt承诺。Xgo diff X new

但是,此过程有许多步骤可能出错,例如-a寻求更改原始提交中未更改的文件、go fmt混淆 Git 的修补程序、Git 更改提交日期等。

这些都不是特别麻烦,但如果一个快速工具或更简单的工作流程更干净,那么我很想知道它。

0 投票
2 回答
346 浏览

go - 在测试 golang 的 println 和 fmt.println 时需要帮助

我编写了简单的代码来测试 println 和 fmt.Println,但是当我运行代码时,它几乎每次都打印出不同的结果。我试图用谷歌搜索 println 和 fmt.Println 之间的区别,但一无所获。有没有人知道这两个功能的真正区别或优先级或顺序?

这是代码:

谢谢!

0 投票
2 回答
1766 浏览

go - 如何使用重写规则在 gofmt 工具中用空格替换制表符?

gofmt命令支持 -r 标志在格式化代码期间使用重写规则。如何使用它用空格缩进替换制表符缩进?

0 投票
5 回答
9456 浏览

go - 如何拆分 fmt.sprintf 的长行

我在 fmt.Sprintf 中有很长的一行。如何在代码中拆分它?我不想将所有内容都放在一行中,因此代码看起来很难看。

0 投票
1 回答
3348 浏览

go - 转到 fmt float64 问题

在我对 go fmt 包的新手理解中,我遇到了一些问题

它与以下代码有关:

导入“fmt”

输出是:

我不想使用科学记数法,所以认为 %f 会满足我的需要。我可以从格式化页面(https://golang.org/pkg/fmt/)看到它说:

有没有一种方法可以使用 fmt 包,它可以让我表示 smallFloat 的完整十进制值,同时不将 6 个零附加到 bigFloat 的末尾?

0 投票
3 回答
5023 浏览

go - 在 Sublime Text 中保存时运行 goimports?

在 Sublime Text 3 中,带有插件GoSublimeGoImports已安装。

goimports每次保存时我都无法自动运行我的文件。

这是我尝试过的:

我的 GoSublime 设置设置为:

当我使用这些设置保存时,代码会被格式化但不会添加导入。到目前为止没有什么令人惊讶的。

如果我按 ctrl+shift+P 然后按 GoImports,导入将按预期添加。

现在我的问题是,当我取消注释前一行以获得这些设置时:

它不仅不添加导入,而且不再进行其他格式化。

知道我哪里出错了吗?

我正在使用 Linux(Ubuntu)。

0 投票
1 回答
591 浏览

go - golang gofmt 包重写通配符

我正在尝试gofmt重写所有以某个前缀开头的包。就像是:

gofmt -r 'github.com/some/path/<wildcard> -> someotherrepo.com/some/path/<wildcard>'

显然wildcard不是有效的语法,只是显示概念。我尝试过使用单个小写字符,但这在这里不起作用。

有可能做我正在尝试的事情gofmt吗?

0 投票
1 回答
930 浏览

vim - 在 vim 中禁用 gofmt-plug in vim ide

如何在 vim-plug ide 中为 vim 禁用 gofmt?

你好,我使用 vim-plug 作为我基于 vim 的 golang IDE。我有一个非常具体的查询。我不希望 gofmt 对我的代码进行任何不必要的格式化。我在 github 上提出了 vim-plug 的问题,但有人建议问题出在 vim-go 上。

我有我自己set tabstop=4.vimrc。我在源代码中添加了标题部分,.go以帮助读者了解源文件的全部内容。此外,在代码中的许多地方,我在代码中添加了多于 1 行以实现更清晰的隔离。早些时候,gofmt 在保存文件的同时修改所有内容。

通过在我的中包含以下 2 行.vimrc

源文件,分别。

但是,我无法禁用 gofmt 添加 8 空格选项卡。由于我有自己的 4 空格制表符,我不希望那些 8 字符制表符由gofmt.

所以,我想完全禁用gofmt。有人可以帮我禁用gofmt吗?

版本信息:我在 CentOS 7.2 上使用 vim-7.4

问候, - 相同的橡木。