欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

go語(yǔ)言import報(bào)錯(cuò)處理圖文詳解

 更新時(shí)間:2023年04月28日 10:11:52   作者:愛(ài)喝coffee的人  
今天本來(lái)想嘗試一下go語(yǔ)言中公有和私有的方法,結(jié)果import其他包的時(shí)候直接報(bào)錯(cuò)了,下面這篇文章主要給大家介紹了關(guān)于go語(yǔ)言import報(bào)錯(cuò)處理的相關(guān)資料,需要的朋友可以參考下

import 認(rèn)識(shí)

go的import有兩種形式

第一種是GOPATH下項(xiàng)目文件管理

第二種是Go Modules

初學(xué)狀態(tài)我用的vscode.在兩個(gè)文件夾中調(diào)用全局變量。

在地址引用時(shí)出現(xiàn)錯(cuò)誤。

通過(guò)查詢知道了兩種方法之間的區(qū)別就在與GO111MODULE的設(shè)置問(wèn)題。

若是用第一種方法就把變量值設(shè)置為off或者auto。

若是用第二種方法就把變量值值設(shè)置為on。

然后就會(huì)看到import引用的地址爆紅。

運(yùn)行顯示
project01\main\demo6\main\main.go:6:2: package go_code/project01/main/demo6/model1 is not in GOROOT (E:\go\src\go_code\project01\main\demo6\model1)

出現(xiàn)這種情況就是使用了Go Modules方式。需要在使用的工作空間設(shè)置一個(gè)go.mod的文件。

在終端中輸入go mod init 模塊名

go mod tidy

如果用auto模式,那就是讓系統(tǒng)自己選擇是那種方式。把項(xiàng)目移動(dòng)到$GOPATH/src外

進(jìn)入目錄,運(yùn)行 go mod init + 模塊名稱

go build 或者 go run 一次。

初學(xué)者,要想解決爆紅問(wèn)題,直接在環(huán)境變量中吧on或者auto改為off就可以了。

補(bǔ)充:Go語(yǔ)言不支持相對(duì)路徑import導(dǎo)入包

Go是一門非常簡(jiǎn)潔,且工程化完備的現(xiàn)代化開(kāi)發(fā)語(yǔ)言。但在 go mod 模塊開(kāi)發(fā)時(shí),不像python那樣,import不支持相對(duì)路徑導(dǎo)入。本地包必須使用全路徑。本文嘗試探索此問(wèn)題。

問(wèn)題的產(chǎn)生

在github上fork一個(gè)開(kāi)源項(xiàng)目之后,想要修改部分代碼后供公司項(xiàng)目使用。發(fā)現(xiàn)需要修改源項(xiàng)目中的所有內(nèi)部import,例如開(kāi)源模塊 M中存在P1、P2等package, 其中P2 import P1的import路徑為 “github.com/someone/M/P1”,而我fork的分支里則是需要import 自己修改后的 "github.com/myself/M/P1",與此類似,整個(gè)開(kāi)源項(xiàng)目里很多這種地方都需要修改。

所以引出了對(duì)相對(duì)路徑導(dǎo)入的思考,有沒(méi)有什么辦法支持相對(duì)路徑的導(dǎo)入而方便fork之后的差異開(kāi)發(fā)呢?

原因

從以下幾個(gè)問(wèn)題可以看出,對(duì)于Go語(yǔ)言來(lái)說(shuō),包相對(duì)路徑的引入,并不是一個(gè)好的方案:

  • 會(huì)與官方標(biāo)準(zhǔn)包的導(dǎo)入相混淆
  • 增加相對(duì)導(dǎo)入包的軟件管理難度
  • 影響了 go get 命令的使用
  • 不方便自動(dòng)生成Go開(kāi)發(fā)標(biāo)準(zhǔn)文檔

相對(duì)路徑導(dǎo)包示例:

import(  
     "./package1"      
     "./package2"      
     "./package3"
)

在 go mod 開(kāi)發(fā)模式下,相對(duì)路徑的導(dǎo)包方式不支持。會(huì)報(bào)錯(cuò)誤:
local import "./package1" in non-local package

相對(duì)路徑導(dǎo)入本地包,會(huì)在 GOPATH 的軟件包目錄中搜索導(dǎo)入。而不是在本項(xiàng)目中導(dǎo)入。

總結(jié)

到此這篇關(guān)于go語(yǔ)言import報(bào)錯(cuò)處理的文章就介紹到這了,更多相關(guān)go語(yǔ)言import報(bào)錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論