程序组成结构及规范说明
Salted Fish 1991/6/26 基础
# 1. 程序示例
以实际代码进行讲解:
package main
// 这是引入包
import "fmt"
// 入口函数
func main() {
// 定义变量
str := "hello word"
// 输出语句
fmt.Println(str)
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 2. 程序组成
# 2.1 包名: package main
package定义包名,必须在源文件中非注释的第一行指明这个文件属于哪个包。每个 Go 应用程序都包含一个名为 main 的包,并且该包包含一个叫main()的函数(该函数是Go程序执行的起点,既不能带参数,也不能定义返回值)。
注意事项:
- 只有
package名称为main的包可以包含main()函数。 - 一个可执行程序有且仅有一个
main包。
# 2.2 导入包: import "fmt"
import语句用于导入该程序所依赖的包。由于本示例程序用到了Println()函数,所以需要导入该函数所属的fmt包。fmt包实现了格式化IO(输入/输出)。
注意事项:
- 通过
import关键字来导入其他非main包。 - 可以通过
import关键字单个导入,也可以同时导入多个。
# 2.3 主函数: func main()
func main()是程序入口。所有Go函数以关键字func开头,每一个可执行程序都必须包含main()函数,通常是程序启动后第一个执行的函数,如果有init()函数则会先执行init()函数。
# 2.4 注释
注释就是对代码的功能进行解释,方便开发人员理解被注释的代码。Go 语言中有以下两种形式。
- 单行注释:
//。 - 多行注释:
/**/,不可以嵌套使用。
# 2.5 语句结束
Go语言中一行代表一个语句结束。每个语句不需要像C 家族中的其它语言一样以分号分号; 结尾。
如果打算将多个语句写在同一行,它们则必须使用分号;人为区分;但在实际开发中并不鼓励这种做法。
# 3. 可见性规则
Go语言中,使用大小写来决定标识符(常量、变量、类型、接口、结构或函数)是否可以被外部包所调用。
- 如果标识符以大写字母开头,那么其对象就可以被外部包的代码所使用(使用时程序需要先导入这个包),如同面向对象语言中的
public。 - 如果标识符以小写字母开头,则对包外是不可见的,但是它们在整个包的内部是可见并且可用的,如同面向对象语言中的
private。
# 4.项目工程结构
GoItem (GOPATH)
├── bin (GOBIN)
├── pkg
└── src
├── app
│ ├── controller
│ │ └── String.go
│ ├── main.go
│ ├── model
│ ├── service
│ └── test
└── app2
├── controller
│ └── String.go
├── main.go
├── model
├── service
└── test
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18