包的引入
2022-02-19 大约 2 分钟
# 使用包的原因
- 我们不可能把所有的函数放在同一个源文件中,可以分门别类的把函数放在不同的源文件中。
- 定义一个utils.go工具函数,让其他文件来调用。
- 定义一个db.go函数,专门对数据库进行操作。
- 解决同包问题:两个人都想定义一个同名函数,在同一个文件中是不可以定义相同的函数的。此时可以用包来区分。
相关信息
一个项目中一般会有一个main文件夹用于存放main.go文件,这个main文件是程序的入口文件,用于定义main函数。
# main函数
main函数是程序的入口函数。
main函数是程序的入口函数一般在main包下,且包的名字必须是main否则会编译错误。
// main.go
// package 进行包的声明,包的名字建议和包所在的文件夹同名
package main
import (
"fmt"
)
func main() {
fmt.Println("这是入口函数")
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 导入包
在一个函数中引入另一个文件中的函数
# 项目文件目录
PS E:\goProject\src\goCode\testProject02> treee
testProject02
├── dbUtils
│ └── dbUtils.go
└── main
└── mian.go
PS E:\goProject\src\goCode\testProject02>
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
// dbUtils.go
package dbUtils
import "fmt"
func DbUtils() {
fmt.Println("操作数据库的工具函数")
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
// main.go
package main
import (
"fmt"
// 引入dbUtils包
"goCode/testProject02/dbUtils"
)
func main() {
dbUtils.DbUtils()
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
PS E:\goProject\src\goCode\testProject02\main> go run .\mian.go
操作数据库的工具函数
1
2
2
相关信息
- 导包时请确保你已经正确配置了
GOPATH
环境变量。环境变量的值为:你的项目根目录。例:GOPATH=E:\goProject
- 需要调整go默认的导包配置。在
ide
中取消勾选配置:File | Settings | Go | Go Modules
- 导出的需要外部调用的函数,函数名字首字母需要大写:
DbUtils
导包时重命名:
package main import ( // 导入包dbUtils,并重命名为aaa aaa "goCode/testProject02/dbUtils" ) func main() { aaa.DbUtils() }
1
2
3
4
5
6
7
8
9
10
# 注意事项
- 一个目录下的同级文件归属一个包且同级文件不能定义相同的函数。
- 同级别的源文件的包的声明必须一致。
- 包名和文件夹的名字可以不一样,一般建议定义成一样。