章节
- package 作用及定义
1.package 作用及定义
- package 是 最基本的分发单位 和 工程管理中依赖关系 的体现
- 每个GO语言源代码文件开头都拥有一个package声明,表示源码文件所属的代码包
- 要生成GO语言可执行程序,必须要有main的package包,且必须在该包下有main()函数
- 同一个路径下只能存在一个package,一个package可以拆成多个源文件组成
2.实践-验证上述package作用及定义
2.1 必须要有 package main 包 且 必须在该包下有main函数
package 包名不为main
package main1
import "fmt"
func main1() {
fmt.Println("测试")
}
运行结果如下图所示:
![2836699-197a1e8d27578222.png](https://upload-images.jianshu.io/upload_images/2836699-197a1e8d27578222.png)
package name->main1
2.2 package main 包中没有main函数-func main1() {...}
package main1
import "fmt"
func main1() {
fmt.Println("测试")
}
运行结果如下所示:
![2836699-575e8f9d190a8ea5.png](https://upload-images.jianshu.io/upload_images/2836699-575e8f9d190a8ea5.png)
func name->main1
所以package main 下面需要有main函数,否则生成不了可执行文件
2.3 package 名不为main
//package 包名与文件夹名要求保持一致
package learn02
import "fmt"
func test02() {
fmt.Println("i am test")
}
package learn02 与 项目文件夹结构目录保持一致
![2836699-b1ef3493c4ef75b6.png](https://upload-images.jianshu.io/upload_images/2836699-b1ef3493c4ef75b6.png)
package learn02 与 项目文件夹结构目录保持一致
test02.go 源代码编译情况如下所示:
源代码文件可正常编译
![2836699-cc1d9147b3435775.png](https://upload-images.jianshu.io/upload_images/2836699-cc1d9147b3435775.png)
test02.go 源文件可正常编译
2.4 同一个路径下只能存在一个package,一个package可以拆成多个源文件组成
目录结构下新建 main02.go
![2836699-cd75635fbf3c442e.png](https://upload-images.jianshu.io/upload_images/2836699-cd75635fbf3c442e.png)
同一个路径下只存在一个package
运行情况
go build main02.go
![2836699-ae22a175d345004f.png](https://upload-images.jianshu.io/upload_images/2836699-ae22a175d345004f.png)
main02.go 可正常编译、但未生成可执行文件
2.5 一个package可以包含多个源文件
项目目录结构如下所示:
![2836699-5b6bd8d0647dbcf9.png](https://upload-images.jianshu.io/upload_images/2836699-5b6bd8d0647dbcf9.png)
一个package可以包含多个源文件