包
Go语言的程序会组织成若干组文件,每组文件被称为一个包。同一个目录下的所有的.go文件必须声明为同一个包名。
- 包名一般使用包所在目录的名字。
- 包名和目录命名时均全小写。
- 导包时,使用的是全路径。如果有包名相同,可以在导入时取别名。
net/http/
cgi/
cookiejar/
testdata/
fcgi/
httptest/
httputil/
pprof/
testdata/
main包
所有用Go语言编译的可执行程序,都必须有一个main包和一个main()函数, 作为程序执行的入口。
- 所有的import 都必须在代码里面使用,否则会编译失败,编译器也会提示。
import本地导入
编译器首先会查找Go的安装目录,然后才会查找GOPATH目录。
- 标准库中的包会在安装Go的位置找到。
- 开发者创建的包,在GOPATH环境变量指定的目录找到。
例如:
import (
"fmt"
"strings"
)
import 远程导入
通过Github等分布式共享代码是大势所趋。Go语言工具链支持从Github、Bitbucket等网站获取源代码,并按照URL的路径保存到GOPATH目录里面。
例如:
import "github.com/spf13/viper"
- 这个过程使用 go get 获取任意URL的包。
- go get具有递归性,会扫描源码树,获得依赖的包。
import 命名导入
当多个包同名时,例如file/convert 和 network/convert。 重名的包可以重新命名。
例如:
import(
"fmt"
myfmt "mylib/fmt"
)
> 欢迎关注扫码,加我VX一起学习。更有面试资料,面经分享哦!!!
import空白标识符
有时引入一个包,但是却不需要在代码里显示引用,可以用空白标识符_.
参考
- Go in action