问题标签 [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 投票
1 回答
529 浏览

go - 将 go 导入修复为相对路径而不是绝对路径

是否有工具可以将我的包中的导入从绝对路径更改为相对路径。目前我的导入package bar看起来像这样:

我想将其转换为

有没有这样的工具gofmt可以为我做到这一点?我知道我可以用 bash 解决这个问题sed。但是,我希望有一个go tool可能存在于相同的地方。

0 投票
1 回答
1587 浏览

go - 您可以调用 gofmt 来格式化您从编写它的 Go 代码中编写的文件吗?

我正在编写输出其他 Go 代码的 Go 代码。

我想知道是否有一种方法可以调用 gofmt 工具来格式化我从完成编写的代码中编写的代码。

我在 gofmt 上找到的文档,例如官方文档,都涉及如何从命令行使用 gofmt,但我想从 Go 代码本身中调用它。

例子:

提前感谢您的时间和智慧。

0 投票
3 回答
1166 浏览

go - gofmt 保留换行符

使用 gofmt 格式化 go 源代码时,它会保留换行符,以便您可以将项目组合在一起。我对这实际上是如何实现的很感兴趣。我尝试查看 github repo 中的源代码golang/go,但无法立即找到。如果您查看https://github.com/golang/go/blob/master/src/go/printer/printer.go#L979

打印机如何知道源中存在这些额外的换行符?有人可以指出我正确的方向吗?

0 投票
1 回答
256 浏览

go - Vim 正常模式将选项卡显示为 1 个字符宽,不与左边距对齐

在此处输入图像描述 这是我的光标在正常模式下的最左边。

在此处输入图像描述 这就是它在插入模式下的样子。

我有以下文件类型设置

这通常发生在.go文件上,因为我猜我有noexpandtab. 但是在正常模式下光标不会转到第 0 列,这让我很害怕。

0 投票
1 回答
336 浏览

go - 如何在 Golang 中设置文本输入的初始值?

我知道您可以通过执行以下操作来调用用户的文本输入:

这将输出:

但是有没有办法为这个输入设置一个用户可以编辑的初始值。例如,如果初始值设置为“english”,那么输出将是:

0 投票
1 回答
48 浏览

go - 在go中,为什么打印时反射的值和它的接口都一样?

反射定律摘录:

(为什么不是 fmt.Println(v)?因为 v 是一个 reflect.Value;我们想要它拥有的具体值。)

这让我很困惑,因为以下代码:

打印相同的输出:

x 的值为:3.4

x的值的接口是:3.4

是因为fmt在内部找到了反射的具体值v吗?

0 投票
1 回答
905 浏览

go - 如何在go中打印反斜杠?

我有以下代码片段:

我明白了:

为什么反斜杠重复?根据这个网站\\内一个格式应该yield \

0 投票
1 回答
394 浏览

go - 在 Golang 中定义类型的字符串输出

我想知道是否有办法fmt指定字符串为特定类型输出的方式。例如,我有一个token结构,其中包含有关令牌的一堆信息,例如令牌类型(这是一个 int,但为了清楚起见,如果我可以将令牌类型的名称输出为字符串会更有意义) .

因此,当我打印特定类型的变量时,是否有一种直接的方法来指定/实现这种类型的字符串输出?

如果这真的没有意义,Rust 有一个很好的形式(来自他们的文档)

0 投票
2 回答
71 浏览

go - 终端输入与预期结果不匹配

我是 Go 新手。

我编写了下面的程序以允许用户输入名称。

我运行程序并输入了我的名字nixon

为什么输出fmt.Println(name == "nixon")总是 is false

0 投票
1 回答
113 浏览

go - fmt.Printf("%f\n",x) 将 Float64 舍入为 Float32,但 fmt.Println(x) 不会

我正在使用字典进行一些测试,为此,我以某种格式从数据库中打印出我想要的 Float64 值,以便将它们复制并粘贴到我的测试结构数组中,但是当我的测试失败时,我注意到这些值不同,但是只有通过0.0000000000002

然后,为了检查值,我在循环中编写了以下内容:

我得到了以下值:

我检查了文档,没有看到任何迹象表明 Float64 有特殊符号,或者 %f 将替换 Float64 为 Float32,但是,当我使用%v%g文档指定它们将%f在适当时使用时,我没有遇到问题.

当我使用任何一种指定精度为 12 时,我都没有遇到问题%.12f,但文档中没有指定默认精度。

为什么会这样?

编辑:这与重复的问题相同,但我相信 Adrien 对此的解释更详细。