Go语言中的包
我们在使用其他语言,比如Java,Python,都有类似包的概念,Go也不例外,其核心思想即为分组和模块化。人的大脑对庞大和复杂的事情很难掌控,可以对其采用分而治之的策略,使其模块化,从而更容易管理。 如下是标准库中net包的树形结构图
net
├─http
│ ├─cgi
│ │ └─testdata
│ ├─cookiejar
│ ├─fcgi
│ ├─httptest
│ ├─httptrace
│ ├─httputil
│ ├─internal
│ ├─pprof
│ └─testdata
├─internal
│ └─socktest
├─mail
├─rpc
│ └─jsonrpc
├─smtp
├─testdata
├─textproto
└─url
库包和main包
当把一个程序的package声明为main的时候(并且该文件包含一个main函数),则表示最终该程序要编译为一个可执行的程序。如果程序未声明为main,则可以编译为一个库的形式。
包的导入
通过import导入包之后,即可使用包中的变量和函数,如下源码,我们定义了一个lib包,里面定义了加,减,乘,除4个方法,然后在另一个包中来使用。
库中的内容如下:
<