Go语言自学系列 | golang包
Posted COCOgsta
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go语言自学系列 | golang包相关的知识,希望对你有一定的参考价值。
视频来源:B站《golang入门到项目实战 [2021最新Go语言教程,没有废话,纯干货!持续更新中...]》
一边学习一边整理老师的课程内容及试验笔记,并与大家分享,请移步至知乎网站,谢谢支持!
附上汇总贴:Go语言自学系列 | 汇总 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/484035621
包可以区分命名空间(一个文件夹中不能有两个同名文件),也可以更好的管理项目。go中创建一个包,一般是创建一个文件夹,在该文件夹里面的go文件中,使用package关键字声明包名称,通常,文件夹名称和包名称相同。并且,同一个文件下面只有一个包
创建包
- 创建一个名为dao的文件夹
- 创建一个dao.go文件
- 在该文件中声明包
package dao
import "fmt"
func Test1()
fmt.Println("test package")
导入包
要使用某个包下面的变量或者方法,需要导入该包,导入包时,要导入从GOPATH开始的包路径,例如,在service.go中导入dao包
package main
import "dao"
func main()
dao.Test1()
包注意事项
- 一个文件夹下只能有一个package
- import后面的其实是GOPATH开始的相对目录路径,包括最后一段。但由于一个目录下只能有一个package,所以import一个路径就等于是import了这个路径下的包。
- 注意,这里指的是“直接包含”的go文件。如果有子目录,那么子目录的父目录是完全两个包。
- 比如你实现了一个计算其package,名叫calc,位于calc目录下;但又想给别人一个使用范例,于是在calc下可以建个example子目录(calc/example),这个子目录里有个example.go(calc/example/example.go)。此时,example.go可以是main包,里面还可以有个main函数。
- 一个package的文件不能在多个文件夹下
- 如果多个文件夹下有重名的package,它们其实是彼此无关的package。
- 如果一个go文件需要同时使用不同目录下的同名package,需要在import这些目录时为每个目录指定一个package的别名。
以上是关于Go语言自学系列 | golang包的主要内容,如果未能解决你的问题,请参考以下文章
Go语言自学系列 | golang包管理工具go module