包的引入

2022-02-19 GoLang 大约 2 分钟

# 使用包的原因

  1. 我们不可能把所有的函数放在同一个源文件中,可以分门别类的把函数放在不同的源文件中。
    • 定义一个utils.go工具函数,让其他文件来调用。
    • 定义一个db.go函数,专门对数据库进行操作。
  2. 解决同包问题:两个人都想定义一个同名函数,在同一个文件中是不可以定义相同的函数的。此时可以用包来区分。

相关信息

一个项目中一般会有一个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

# 导入包

在一个函数中引入另一个文件中的函数

# 项目文件目录
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
// dbUtils.go

package dbUtils

import "fmt"

func DbUtils() {
	fmt.Println("操作数据库的工具函数")
}
1
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
PS E:\goProject\src\goCode\testProject02\main> go run .\mian.go
操作数据库的工具函数
1
2

相关信息

  1. 导包时请确保你已经正确配置了GOPATH环境变量。环境变量的值为:你的项目根目录。例:GOPATH=E:\goProject
  2. 需要调整go默认的导包配置。在ide中取消勾选配置:File | Settings | Go | Go Modules
  3. 导出的需要外部调用的函数,函数名字首字母需要大写:DbUtils

导包时重命名:

package main

import (
	// 导入包dbUtils,并重命名为aaa
   aaa "goCode/testProject02/dbUtils"
)

func main() {
   aaa.DbUtils()
}
1
2
3
4
5
6
7
8
9
10

# 注意事项

  1. 一个目录下的同级文件归属一个包且同级文件不能定义相同的函数。
  2. 同级别的源文件的包的声明必须一致。
  3. 包名和文件夹的名字可以不一样,一般建议定义成一样。
上次编辑于: 2023年7月4日 09:36