go語(yǔ)言gopath go語(yǔ)言開(kāi)發(fā)為什么難找工作

go語(yǔ)言為什么這么依賴(lài)gopath這個(gè)環(huán)境變量

GOPATH是你的工作目錄,對(duì)于項(xiàng)目文件而言,項(xiàng)目的結(jié)構(gòu)和你的工作目錄的結(jié)構(gòu)有很大關(guān)系。

創(chuàng)新互聯(lián)建站-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比羅田網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式羅田網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋羅田地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴(lài)。

GOPATH路徑下默認(rèn)是有以下三個(gè)目錄的,

1.src 存放源代碼(比如:.go .c .h .s等)

2.pkg 編譯后生成的文件(比如:.a)

3.bin 編譯后生成的可執(zhí)行文件(為了方便,可以把此目錄加入到 $PATH 變量中,如果有多個(gè)gopath,那么使用${GOPATH//://bin:}/bin添加所有的bin目錄)

golang的 GOPATH和vendor的搜索關(guān)系

golang的 GOPATH和vendor的搜索關(guān)系

項(xiàng)目只有一個(gè)包,即main包,沒(méi)有引用其他的包(golang自帶的系統(tǒng)包除外)。

然后設(shè)置GOPATH=path/to/goproject,再運(yùn)行g(shù)o build myproject,這樣就可以在任何目錄下面編譯,編譯生成的可執(zhí)行文件就在編譯所在的目錄下,而不是包源文件所在的目錄。

基本規(guī)則:

鑒于此,建議golang項(xiàng)目必須嚴(yán)格按照規(guī)范的目錄結(jié)構(gòu)組織,哪怕是前面這種自包含的項(xiàng)目。

基本規(guī)則:

如果一個(gè)包在vendor和GOPATH下面都存在那么誰(shuí)會(huì)優(yōu)先使用呢。

結(jié)論是:

包mydeps在vendor目錄下面和GOPATH路徑下面都存在了,那么main.go引用的時(shí)候只會(huì)引用vendor下面的mydeps(src/myproject/vendor/mydeps),而忽略GOPATH下面的mydeps包(src/mydeps)。

前面提到GOPATH和PATH類(lèi)似,可以包含多個(gè)路徑,中間用分號(hào)隔開(kāi),go在搜索包的時(shí)候會(huì)按手續(xù)從前往后搜搜。那么vendor怎么處理層級(jí)關(guān)系呢。

規(guī)則是:

舉例:

如果src/mydep/mydep1/mydep.go引用了myvendor1和myvendor,那是怎么搜索的呢

go語(yǔ)言設(shè)置時(shí)GOPATH和GOROOT有什么區(qū)別

可以簡(jiǎn)單理解為:

$GOPATH 是go的工程目錄

/home/guest/gocode

├── bin

├── pkg

└── src

$GOROOT 是go的安裝目錄

/home/guest/tools/go

├── api

├── AUTHORS

├── bin

├── blog

├── CONTRIBUTING.md

├── CONTRIBUTORS

├── doc

├── favicon.ico

├── lib

├── LICENSE

├── misc

├── PATENTS

├── pkg

├── README.md

├── robots.txt

├── src

├── test

└── VERSION

名稱(chēng)欄目:go語(yǔ)言gopath go語(yǔ)言開(kāi)發(fā)為什么難找工作
本文URL:http://muchs.cn/article34/dohhgse.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、品牌網(wǎng)站設(shè)計(jì)網(wǎng)站制作、網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)