- Go语言从入门到精通
- 谢琼编著
- 488字
- 2025-04-02 16:12:17
3.2.5 用多级子目录组织包结构
前面几小节中用到的包都是直接建立在src目录下新建的子目录中的。如果以后编写的包越来越多,会导致src目录下子目录过多,显得比较混乱。实际上,包也可以用多级子目录来组织。例如,我们可以在src目录下新建一个libs子目录,然后在libs下面新建一个package1子目录,并将package1.go代码文件复制到该目录下,操作完毕后目录结构如图3.20所示。

图3.20 用多级目录组织Go语言代码
可以看到,src目录下有一个原来我们建立的一级子目录package1,也会有一个在libs子目录下的二级子目录package1。这时,如果要在test1包中使用libs子目录下的package1包,应该将原来的import引用语句改为:
import ( "libs/package1" )
只需要在原来的package1前面加上libs目录和目录分隔符“/”,注意,这里用的是Mac OS和Linux风格的目录分隔符“/”,而不是Windows系统中常用的目录分隔符“\”,这种写法能够保证引用的包在这几个系统中都能被正常找到。这种情况下,我们一般将package1称作“libs包的子包”。再多级别目录的情况也可以用类似“libs/lib2/package1”这样的方式来组织,并且简称为“libs/lib2的子包package1”。
使用多级目录组织Go语言的包结构,有助于更合理地分类组织自己的代码,是良好的编程习惯。Go语言标准库中的包和很多第三方包也是使用多级目录的方式来组织的。