1、包声明
2、包导入
import ( mylog "github.com/helper/log" ) mylog 就是导入包的别名
Go 语言中的变量、常量、函数和类型声明可统称为程序实体,而他们的名称统称为表示符
var logger = NewLogger("gopcp") logger 是标识符 NewLogger("gopcp") 是程序实体
标识符的大小写控制对应程序的访问权限
3、包初始化
有专门的函数负责代码包初始化,这个函数就是无任何参数和结果声明的 init函数。
func init() { fmt.Println("initialize…") }
Go 会在程序真正执行前对整个程序的依赖进行分析,并初始化相关的代码包。
当前代码包中所有全局变量的初始化会在代码包初始化函数执行前完成
是开发人员编写的,具有很强可读性的一组相关代码文本。
“二进制包”是经过编译的,机器运行时才能识别的一组相关文件。
包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的Python的应用环境。
考虑一个在Phone目录下的pots.py文件。这个文件有如下源代码:
?
同样地,大家有另外两个保存了不同函数的文件:
Phone/Isdn.py 含有函数Isdn()
Phone/G3.py 含有函数G3()
现在,在Phone目录下创建file __init__.py:
?
当你导入Phone时,为了能够使用所有函数,你需要在__init__.py里使用显式的导入语句,如下:
?
当你把这些代码添加到__init__.py之后,导入Phone包的时候这些类就全都是可用的了。
?