1

我喜欢在 Go 中将类型名称与变量进行一点视觉分离。我一直在玩以下游戏:

var target (int64) = 600851475143
var largest (int64) = 0
var i (int64)

到目前为止,它编译正确,我看不出我的程序运行结果有什么不同。

这很危险吗?上面和下面之间有语义上的区别吗?

var target int64 = 600851475143
var largest int64 = 0
var i int64

谢谢

4

2 回答 2

8

没有语义差异,但您可能会发现自己在与之抗争,go fmt所以我认为这不值得。

于 2012-07-10T21:19:32.350 回答
4

你不是一个人编码。

即使没有其他人阅读过您的代码,您也会阅读其他人的代码:标准 API 之一,您将使用的组件之一,以及博客、SO 答案和所有文档之一。

go 带来并强制执行的格式化标准化gofmt确保您轻松阅读所有 go 代码,而无需习惯编写器的格式化风格。在简单格式化的代码中,自然会避免很多错误,因为不常见的错误会立即被发现。

此外,这就像您的非括号增强代码在标准编辑器中的样子:

在此处输入图像描述

无需添加任何内容即可让类型可见。

我建议您在所有代码上运行 gofmt 并阅读标准包代码,以尝试使用相同的格式样式(包括注释)。

以下是 Rob Pike 对代码和注释修饰的看法。我认为这些都是很好的建议,即使并非一切都适用。

于 2012-07-11T06:02:48.393 回答