Golang自定义包并导入包

0x00 Go语言自定义包,方式一:按相对路径引入包(将GO111MODULE设置为off或者auto)

  •  Go语言在创建包时,都要先新建目录(文件夹),并且建立包的go文件放到此目录下,建立的.go文件命名包的名字时必须和该.go文件所在的当前目录名保持一致。
  • 我们可以到golang编译器安装目录下的src目录查看fmt包的内容,首先是一个fmt目录(文件夹),这个目录下的所有.go文件定义的包名都是fmt。

Golang自定义包并导入包_第1张图片

Golang自定义包并导入包_第2张图片

  • 要想建立的包能够被调用,所自定义的包里面的函数首字母必须大写。
  • 在调用自定义的包时,首先得引入包(方式一:按照包的相对路径引入),import ("./包名"),并且在调用函数时,必须是:包名.函数名()。

Golang自定义包并导入包_第3张图片

 Golang自定义包并导入包_第4张图片

  •  当以绝对路径导入包时,会发生错误(编译器提示:无效的路径)。

Golang自定义包并导入包_第5张图片

  •  当以绝对路径导入自定义包时,Go语言会认为这是个特殊的路径,专门用来存放编码者所写的自定义包,所以此时编码者应当将自定义包放到GOPATH目录下的src目录下,这样的一个工作目录即方便编码者调用此包,也方便了编码者后续管理和升级自己的包。

 0x01 方式二:在GOPATH的src目录下导入自定义包(将GO111MODULE设置为off或者auto)

 Golang自定义包并导入包_第6张图片

  •  从编译器的提示可以发现,当要以某个路径(非相对路径)引用包时,这个包所在的位置必须在GOPATH的src目录(即GOPATH目录下的src目录)下或者Golang编译器的安装目录下的src目录(即GOROOT目录下的src目录)中,强烈建议不要放到GOROOT目录下的src目录,因为这是Go语言标准库所放置的路径,学习完这篇博文,你就能体会到go语言设计GOPATH以及GOMODULE包管理方式的好处,让编码者更好的管理自己的代码。

Golang自定义包并导入包_第7张图片

  •  以上内容笔者均在golang编译器1.15中验证通过。

0x02 golang引用开源库(将GO111MODULE设置为on)

  •  利用GO111MODULE和GOPROXY,可以直接将Github上的第三方库直接下载到本地使用,不需要使用go get命令

Golang自定义包并导入包_第8张图片

Golang自定义包并导入包_第9张图片

  •  Go Modules包管理工具在国内环境下配置好go代理,使用七牛云的代理,可以快速的下载包,使用go mod命令下载的包在我们配置好的GOPATH目录下的pkg目录下,准确来说是pkg目录下的mod目录,表示多个模块,模块就是多个包的集合,Go语言这样设计就是让编码者非常舒服的管理包,这也是Go Modules管理包方式的优点,非常有条理性。

Golang自定义包并导入包_第10张图片

  •  现在解读下GOPATH目录下的三个目录bin,pkg,src,bin目录用来放置可执行文件的(前提是未设置GOBIN,否则就在设置好的GOBIN目录下),当我们使用go install命令时,生成的可执行文件就在这里,其次我们在下载某些开源库的命令行工具也在这里,比如我们下载beego框架的bee命令就在此,如果我们将GOPATH目录下的bin配置到计算机的环境变量中,那么我们直接在命令行或者终端中使用这些命令;pkg目录下的mod目录用来存放第三方的开源库;src目录就是用来存放我们自定义包,当然我们自定义的包也可以放到其他目录下,只是放到src目录时,方便调用和管理。

 

你可能感兴趣的:(Golang,go)