问题标签 [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.
go - 漂亮打印与字符串转换的实用方法
我想简单地提供一种使用漂亮打印而不是普通类型->字符串转换来记录数据的机制,这种转换不会干扰通过字符串进行的数据传输。
我可以添加一个 type.String() 转换器方法 - 然后 fmt 库将自动使用该方法,该库通常用于记录输出。
但是,这可能会干扰使用类型->字符串转换并默认使用 .String() 机制的其他域(也许在“将这个东西作为可扫描字符串给我”时应该使用更好的标准接口需要吗?)
什么是“正确的方法”或编写用于数据 I/O 的类型->字符串转换器的实用方法 - 例如 HTTP URI 参数或数据库 I/O 等,而不是漂亮的打印到日志?
go - 运行 go fmt ./... 在不同的操作系统上得到不同的行为
当我go fmt ./...
在我的 vscode 项目的根目录下运行时,我在不同的操作系统上得到了不同的格式化结果:
Windows
)
MacOS
)
这是gofmt
不同操作系统中的预期行为吗?如果是这样,我如何在 vscode 中配置代码格式规则以使其保持一致?
编辑:我在两个操作系统上使用相同版本的 Golang。
go - 吐出代码格式化错误,而不是在 golang 中实际格式化
我正在开发一个大型的 go 代码库,并且 go 代码的格式似乎不正确。
我想知道 go 中是否有一个选项可以以某种方式断言我需要在哪些地方更改代码样式。我没有使用任何 IDE。go fmt
完成这项工作,但我不希望自动处理样式。我找不到任何可以传递的选项/参数go fmt
来做同样的事情。
有什么办法可以让我(有点)空运行 go fmt 并吐出格式错误或使用任何其他实用程序来做到这一点?
json - 解析 JSON 对象后打印选定字段时出错
尝试通过 Go 解析 JSON 对象并遍历记录并仅打印选定的字段。使用 fmt 打印时面临无法参考的问题。
JSON对象结构:
临时文件:
}
主要的:
错误:
无效操作:“余额:”+ walletData[i].Balance(不匹配的类型字符串和小数。十进制)”
go - go 生成标准输出到 gofmt 到文件
go generate 的语法是什么,可以将 stdout 从 go run 传输到 gofmt 并最终传输到文件?下面是我尝试过的简单示例。它在文件中main.go
。搜索后我找不到任何这样的例子。谢谢你。
编辑:最终我想使用go generate
并让它写一个格式化的文件。
go - Vscode golang 扩展在格式上需要很长时间
这些是我运行 vscode 和 golang 的配置:
- 去版本 go1.14.1 linux/amd64
- vscode 版本 1.43.2
- ms-codego 版本 0.13.1
- Linux/AMD64
当我想保存带有 go 扩展名的文件时,格式化需要很长时间
我尝试过gofmt
,goimports
而且goreturns
他们所有人都有这个问题。有时需要大约 5 分钟,然后它什么也不做。但是当我在命令行中为该文件运行 go fmt (例如)时,它很快就会打印出格式化的结果。过一会儿就好了,然后关闭并重新打开vscode,问题再次出现。
更多信息
当我打开另一个 go 项目时,我没有同样的问题。我只是对被告知的项目有很大的问题。这两个项目之间的主要区别在于,在我正在使用的正确项目中go-dep
和在我正在使用的错误项目中go-mod
go - 我如何提议更改 Go 格式?
Goformat
软件包的文档说:
请注意,Go 源代码的格式会随着时间而变化。
这是怎么发生的?我有一个特定的小改动,我想在社区中运行。需要明确的是,我很高兴社区有一个标准,我并不想采纳它。相反,我想知道被批准的手段是什么,即提出改变以便考虑。
对于好奇的人,我想建议的是:
与此相反:
在我看来,这将更符合:
或者
go - Golang 自定义类型 fmt 打印
我有一个这样的自定义类型:
现在,当我使用以下方法打印它的实例时fmt
:
输出是:
如何将自定义格式添加到自定义类型以漂亮地打印输出,就像2009-11-10T23:00:00Z
应该使用fmt
函数(Println
等)打印的情况一样?
go - 如何按顺序将字符串输入输入 bufio.Scanner 和 fmt.Scanln?
这是一个使用 bufio.Scanner 和 fmt.Scanln 的简单程序,它按预期工作:
这是程序输出(括号内的文字[]是键盘输入)
现在,我们不使用默认的标准输入,而是使用管道从字符串而不是键盘重定向输入。
这是程序输出:
在“Enter an int:”提示后,程序无限期等待,必须手动终止。:(
奇怪的是,如果我颠倒事件的顺序(fmt.Scanln 在 bufio.Scanner.Scan 之前),那么它会完美运行。如果我专门使用 fmt.Scanln 或专门使用 bufio.Scanner.Scan,它也可以正常工作。
所有这些都让我想到:
a) Go 处理键盘输入的方式有一些独特的不同
b) 使用 bufio.Scanner.Scan 扫描时我应该使用其他类型的分隔符
c) 永远不要同时使用这两种扫描机制(请不要不要让这成为答案!)
go - 是否可以使用默认缩进级别来增加 fmt.print?
我正在搞乱创建模块并将它们互连。
在测试行为时,我正在调用调用其他包的包。
是否有一种简单的方法可以通过未来调用的缩进级别来修改 fmt 包的行为。这样父可以在调用子包之前设置缩进级别+1。
这样,当每个函数打印输出时,我可以很容易地在标准输出中看到级联依赖项: