关于Golang中的package

如何使用本地的package

在说本地package之前先说明下main包,我们都知道package main代表了当前项目的运行入口,首先Go语言中一个目录下的go文件对应的package声明要一致,并且也并不是只能有一个文件是package main。当项目中同目录下有多个文件声明了package main时,执行go程序就不能指定某个文件来执行,而是采用go run .或者go build .才能正常运行。

那么通常项目根目录的文件我们会放置程序入口main,那么自定义个package则会放在子目录下,这样就不得不说明下go module。

go modules是 golang 1.11引入的新特性。go命令直接支持使用modules,包括记录和解析对其他模块的依赖性。modules替换旧的基于GOPATH的方法来指定在给定构建中使用哪些源文件。

使用命令go mod init project_name即可生成一个go.mod文件,这里需要注意,我们在看别人的项目时这个project_name更多情况是一个域名,指向了github.com中自己的项目所对应的url。实际上这个名字可以自定义,可以是自己起的项目名称,也可以是一个不存在的域名,总之它是一个标识,用于告诉go编译器你项目的根位置的名称是什么。

比如项目起名为example.com/lab,使用命令go mod init example.com/lab后所生成的go.mod文件里就会写入这个名称,虽然可能并没有example.com/lab这个url存在,但是只要记住这个是一个项目标识就可以了,如果希望自己的package包放在项目根目录下的pkg下,那么在go代码中import example.com/lab/pkg/your_package即可实现导入。

通常情况我们在写自定义的包时会声明package名称为当前文件夹的名称,当然这只是规范并不是编译器的硬性规定,你完全可以使用任何名称作为你当前的package的命名,只要保证同目录下所有的go文件都使用这个package名称即可。


关于Golang中的package
http://example.com/2023/12/06/关于Golang中的package/
Author
John Doe
Posted on
December 6, 2023
Licensed under