新聞中心
一般的編程語(yǔ)言往往對(duì)工程(項(xiàng)目)的目錄結(jié)構(gòu)是沒(méi)有什么規(guī)定的,但是Go語(yǔ)言卻在這方面做了相關(guān)規(guī)定,本節(jié)我們就來(lái)聊聊Go語(yǔ)言在工程結(jié)構(gòu)方面的有關(guān)知識(shí)。

創(chuàng)新互聯(lián)公司是一家專(zhuān)業(yè)提供蕭縣企業(yè)網(wǎng)站建設(shè),專(zhuān)注與成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、HTML5、小程序制作等業(yè)務(wù)。10年已為蕭縣眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。
我們前面講搭建Go語(yǔ)言開(kāi)發(fā)環(huán)境時(shí)提到的環(huán)境變量 GOPATH,項(xiàng)目的構(gòu)建主要是靠它來(lái)實(shí)現(xiàn)的。這么說(shuō)吧,如果想要構(gòu)建一個(gè)項(xiàng)目,就需要將這個(gè)項(xiàng)目的目錄添加到 GOPATH 中,多個(gè)項(xiàng)目之間可以使用
;分隔。
如果不配置 GOPATH,即使處于同一目錄,代碼之間也無(wú)法通過(guò)絕對(duì)路徑相互調(diào)用。
目錄結(jié)構(gòu)
一個(gè)Go語(yǔ)言項(xiàng)目的目錄一般包含以下三個(gè)子目錄:
- src 目錄:放置項(xiàng)目和庫(kù)的源文件;
- pkg 目錄:放置編譯后生成的包/庫(kù)的歸檔文件;
- bin 目錄:放置編譯后生成的可執(zhí)行文件。
三個(gè)目錄中我們需要重點(diǎn)關(guān)注的是 src 目錄,其他兩個(gè)目錄了解即可,下面來(lái)分別介紹一下這三個(gè)目錄。
src 目錄
用于以包(package)的形式組織并存放 Go 源文件,這里的包與 src 下的每個(gè)子目錄是一一對(duì)應(yīng)。例如,若一個(gè)源文件被聲明屬于 log 包,那么它就應(yīng)當(dāng)保存在 src/log 目錄中。
并不是說(shuō) src 目錄下不能存放 Go 源文件,一般在測(cè)試或演示的時(shí)候也可以把 Go 源文件直接放在 src 目錄下,但是這么做的話就只能聲明該源文件屬于 main 包了。正常開(kāi)發(fā)中還是建議大家把 Go 源文件放入特定的目錄中。
包是Go語(yǔ)言管理代碼的重要機(jī)制,其作用類(lèi)似于 Java中的 package 和 C/ C++ 的頭文件。Go 源文件中第一段有效代碼必須是
package <包名> 的形式,如 package hello。
另外需要注意的是,Go語(yǔ)言會(huì)把通過(guò)
go get 命令獲取到的庫(kù)源文件下載到 src 目錄下對(duì)應(yīng)的文件夾當(dāng)中。
pkg 目錄
用于存放通過(guò)
go install 命令安裝某個(gè)包后的歸檔文件。歸檔文件是指那些名稱(chēng)以“.a”結(jié)尾的文件。
該目錄與 GOROOT 目錄(也就是Go語(yǔ)言的安裝目錄)下的 pkg 目錄功能類(lèi)似,區(qū)別在于這里的 pkg 目錄專(zhuān)門(mén)用來(lái)存放項(xiàng)目代碼的歸檔文件。
編譯和安裝項(xiàng)目代碼的過(guò)程一般會(huì)以代碼包為單位進(jìn)行,比如 log 包被編譯安裝后,將生成一個(gè)名為 log.a 的歸檔文件,并存放在當(dāng)前項(xiàng)目的 pkg 目錄下。
bin 目錄
與 pkg 目錄類(lèi)似,在通過(guò)
go install 命令完成安裝后,保存由 Go 命令源文件生成的可執(zhí)行文件。在類(lèi) Unix 操作系統(tǒng)下,這個(gè)可執(zhí)行文件的名稱(chēng)與命令源文件的文件名相同。而在 Windows 操作系統(tǒng)下,這個(gè)可執(zhí)行文件的名稱(chēng)則是命令源文件的文件名加 .exe 后綴。
源文件
上面我們提到了命令源文件和庫(kù)源文件,它們到底是什么呢?
- 命令源文件:如果一個(gè) Go 源文件被聲明屬于 main 包,并且該文件中包含 main 函數(shù),則它就是命令源碼文件。命令源文件屬于程序的入口,可以通過(guò)Go語(yǔ)言的
go run命令運(yùn)行或者通過(guò)go build命令生成可執(zhí)行文件。 - 庫(kù)源文件:庫(kù)源文件則是指存在于某個(gè)包中的普通源文件,并且?guī)煸次募胁话?main 函數(shù)。
不管是命令源文件還是庫(kù)源文件,在同一個(gè)目錄下的所有源文件,其所屬包的名稱(chēng)必須一致的。
網(wǎng)頁(yè)題目:創(chuàng)新互聯(lián)GO教程:Go語(yǔ)言工程結(jié)構(gòu)詳述
標(biāo)題網(wǎng)址:http://www.dlmjj.cn/article/dpgdiog.html


咨詢(xún)
建站咨詢(xún)
