我喜欢在 Go 中将类型名称与变量进行一点视觉分离。我一直在玩以下游戏:
var target (int64) = 600851475143
var largest (int64) = 0
var i (int64)
到目前为止,它编译正确,我看不出我的程序运行结果有什么不同。
这很危险吗?上面和下面之间有语义上的区别吗?
var target int64 = 600851475143
var largest int64 = 0
var i int64
谢谢
我喜欢在 Go 中将类型名称与变量进行一点视觉分离。我一直在玩以下游戏:
var target (int64) = 600851475143
var largest (int64) = 0
var i (int64)
到目前为止,它编译正确,我看不出我的程序运行结果有什么不同。
这很危险吗?上面和下面之间有语义上的区别吗?
var target int64 = 600851475143
var largest int64 = 0
var i int64
谢谢
没有语义差异,但您可能会发现自己在与之抗争,go fmt
所以我认为这不值得。
你不是一个人编码。
即使没有其他人阅读过您的代码,您也会阅读其他人的代码:标准 API 之一,您将使用的组件之一,以及博客、SO 答案和所有文档之一。
go 带来并强制执行的格式化标准化gofmt
确保您轻松阅读所有 go 代码,而无需习惯编写器的格式化风格。在简单格式化的代码中,自然会避免很多错误,因为不常见的错误会立即被发现。
此外,这就像您的非括号增强代码在标准编辑器中的样子:
无需添加任何内容即可让类型可见。
我建议您在所有代码上运行 gofmt 并阅读标准包代码,以尝试使用相同的格式样式(包括注释)。
以下是 Rob Pike 对代码和注释修饰的看法。我认为这些都是很好的建议,即使并非一切都适用。