1.30——Go语⾔⼯程结构详述
⼀般的编程语⾔往往对⼯程(项⽬)的⽬录结构是没有什么规定的,但是Go语⾔却在这⽅⾯做了相关规定,本节我们就来聊聊Go语⾔在⼯程结构 ⽅⾯的有关知识。
我们前⾯讲搭建Go语⾔开发环境时提到的环境变量 GOPATH,项⽬的构建主要是靠它来实现的。这么说吧,如果想要构建⼀个项⽬,就需要将这个 项⽬的⽬录添加到 GOPATH 中,多个项⽬之间可以使⽤;分隔。
如果不配置 GOPATH,即使处于同⼀⽬录,代码之间也⽆法通过绝对路径相互调⽤。
⽬录结构
⼀个Go语⾔项⽬的⽬录⼀般包含以下三个⼦⽬录:
src ⽬录:放置项⽬和库的源⽂件;
pkg ⽬录:放置编译后⽣成的包/库的归档⽂件;
go语言开发环境搭建bin ⽬录:放置编译后⽣成的可执⾏⽂件。
三个⽬录中我们需要重点关注的是 src ⽬录,其他两个⽬录了解即可,下⾯来分别介绍⼀下这三个⽬录。
src ⽬录
⽤于以包(package)的形式组织并存放 Go 源⽂件,这⾥的包与 src 下的每个⼦⽬录是⼀⼀对应。例如,若⼀个源⽂件被声明属于 log 包,那 么它就应当保存在 src/log ⽬录中。
并不是说 src ⽬录下不能存放 Go 源⽂件,⼀般在测试或演⽰的时候也可以把 Go 源⽂件直接放在 src ⽬录下,但是这么做的话就只能声明该 源⽂件属于 main 包了。正常开发中还是建议⼤家把 Go 源⽂件放⼊特定的⽬录中。
包是Go语⾔管理代码的重要机制,其作⽤类似于Java中的 package 和 C/C++ 的头⽂件。Go 源⽂件中第⼀段有效代码必须是package 的 形式,如 package hello。
另外需要注意的是,Go语⾔会把通过go get 命令获取到的库源⽂件下载到 src ⽬录下对应的⽂件夹当中。
pkg ⽬录
⽤于存放通过go install 命令安装某个包后的归档⽂件。归档⽂件是指那些名称以“.a”结尾的⽂件。
该⽬录与 GOROOT ⽬录(也就是Go语⾔的安装⽬录)下的 pkg ⽬录功能类似,区别在于这⾥的 pkg ⽬录专门⽤来存放项⽬代码的归档⽂件。
编译和安装项⽬代码的过程⼀般会以代码包为单位进⾏,⽐如 log 包被编译安装后,将⽣成⼀个名为 log.a 的归档⽂件,并存放在当前项⽬的 pkg ⽬录下。
bin ⽬录
与 pkg ⽬录类似,在通过go install 命令完成安装后,保存由 Go 命令源⽂件⽣成的可执⾏⽂件。在类 Unix 操作系统下,这个可执⾏⽂件的 名称与命令源⽂件的⽂件名相同。⽽在 Windows 操作系统下,这个可执⾏⽂件的名称则是命令源⽂件的⽂件名加 .exe 后缀。
源⽂件
上⾯我们提到了命令源⽂件和库源⽂件,它们到底是什么呢?
命令源⽂件:如果⼀个 Go 源⽂件被声明属于 main 包,并且该⽂件中包含 main 函数,则它就是命令源码⽂件。命令源⽂件属于程序的⼊⼝, 可以通过Go语⾔的go run 命令运⾏或者通过go build 命令⽣成可执⾏⽂件。
库源⽂件:库源⽂件则是指存在于某个包中的普通源⽂件,并且库源⽂件中不包含 main 函数。
不管是命令源⽂件还是库源⽂件,在同⼀个⽬录下的所有源⽂件,其所属包的名称必须⼀致的。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。