5.2. 格式化
格式化是一个最有争议的问题。虽然人可以适应各种不同的风格,不过如果大家都遵循一个默认统一的 风格是最理想的。当然,这也是一个仁者见仁、智者见智的问题,不可能有一个终极的理想答案。
对于Go语言,我们采用不同的处理方法:让机器处理绝大部分的格式化工作。工具程序 gofmt可以根据需要将Go代码格式自动格式化为统一的风格。如果你想 了解格式化后代码的缩进方式,你可以直接运行gofmt,然后查看输出结果。
下面是一个例子,我们没有必要花时间手工调整类型中成员注释的对齐方式。Gofmt 可以自动将注释对齐。下面是结果的定义:
type T struct {
name string // name of the object
value int // its value
}
gofmt处理后的结果:
type T struct {
name string // name of the object
value int // its value
}
Go语言库中的所有代码都是用gofmt工具格式化的。
格式化的一些细节:
缩进
我们使用tab缩进,gofmt也是默认用tab缩进。当然,也可以指定空白缩进。
行的长度
Go语言代码每行长度没有限制。不用担心一行的代码太长超出显式范围,gofmt会自动 处理太长的行。
小括号
Go语言很少使用括弧:对于控制结构(if,for,switch) 括弧也不是必须的。而且Go中表达式中运算符的优先级比较简洁,例如下面代码:
x<<8 + y<<16
意思是x和y移位后相加。