代码结构
学习编写程序,首先我们需要学习的就是如何编写代码块。
语句
语句是执行某个操作的语法结构。也是构成代码块的基本单元。
之前我们见到的 fmt.Printf("Hello, World")
就是一条用来在控制台输出内容的语句。
我们可以根据自己的需要写很多语句。多个语句之间使用分号进行分割。例如:
package main
import "fmt"
func main() {
fmt.Printf("Hello, World");fmt.Printf("Hello, World");fmt.Printf("Hello, World");
}
从上面的代码中可以看出来,每行中的语句越多,会导致程序越难以理解和后续维护,因此一个好习惯是每行只写一条语句,以此提高代码的可读性。
这样还有一个好处,Go 语言中存在自动插入分号机制,简单的来说就是,Go 语言的词法分析器会使用一条简单的规则来自动插入分号,因此因此源码中基本就不用分号了。
package main
import "fmt"
func main() {
fmt.Printf("Hello, World")
fmt.Printf("Hello, World")
fmt.Printf("Hello, World")
}
在大多数情况下,换行符即意味着分号。
详细的自动分号插入规则请参考 golang.google.cn/doc/effective_go.html#semicolons。
注释
随着时间的推移,我们的程序会变得越来越复杂。因此在代码中适当的加入一些信息来描述和解释它做了什么以及背后的原因变得非常重要。
注释可以放在程序中的任何地方。它们不会影响程序的执行,因为程序在编译时会把这些信息自动忽略掉。
单行注释
单行注释以两个斜杠字符开头 //
。
//
标记当前所在行的后续内容为注释信息。只对当前行的标志后面的部分有效。
// 我是一个单行注释,这里是备注信息。通常用来描述下一行语句的一些相关信息。
fmt.Printf("Hello, World")
fmt.Printf("Hello, World") // 我也是一个单行注释,这里是备注信息。通常用来描述当前行的语句的一些相关信息。
块注释
块注释以 /*
开始,以 */
结尾。开始和结束标志内的所有内容均为注释信息。
块注释通常放在文件的最顶部用作包的注释,有时也用来禁用一大段代码。
/*
这是一个块注释,开始和结束标志内的所有内容均为注释信息。其中的代码不会被执行。
func main() {
fmt.Printf("Hello, World")
}
*/
注释和文档
godoc
是一个官方提供的非常有用的工具,能够根据你的注释信息自动生成文档。
出现在顶级声明之前,且与该声明之间没有空行的注释,将与该声明一起被提取出来,作为该条目的说明文档。 这些注释的类型和风格决定了 godoc
生成的文档质量。
每个包都应包含一段包注释,即放置在包子句前的一个块注释。对于包含多个文件的包,包注释只需出现在其中的任一文件中即可。包注释应在整体上对该包进行介绍,并提供包的相关信息。它将出现在 godoc
页面中的最上面,并为紧随其后的内容建立详细的文档。
良好、完善的注释会大大提高程序的可读性以及可维护性。因此,请不要吝啬。