之前一直正常的項(xiàng)目,莫名其妙的 database/sql 包下的方法、結(jié)構(gòu)體等等IDE都無法識(shí)別,出現(xiàn)一堆Unresolved reference錯(cuò)誤提示,但包導(dǎo)入路徑可以正確定位,而且項(xiàng)目運(yùn)行也正常,其他包都正常,另一個(gè)項(xiàng)目下同樣使用sql包也正常。
折騰半天都沒用,不想重建項(xiàng)目重裝IDE太麻煩,最后嘗試最簡(jiǎn)單的升級(jí)到 golang 1.12.5 重啟Goland后就正常了,應(yīng)該和版本沒有關(guān)系,重裝下golang就行,估計(jì)是Goland文件索引的問題,重裝golang后會(huì)重建索引就能正常識(shí)別了
import 正常,能正確識(shí)別路徑,但不能識(shí)別 database/sql 包中的任何方法、結(jié)構(gòu)體等。。。但使用其他包卻都正常,奇怪
升級(jí)golang后IDE應(yīng)該是重建了索引,現(xiàn)在就一切正常了
補(bǔ)充:Goland 導(dǎo)入自定義包問題解決
今天在學(xué)習(xí)Go的面向?qū)ο髸r(shí),想測(cè)試Go中類屬性、方法的公私有問題,在另外定義一個(gè)包后,發(fā)現(xiàn)在main函數(shù)中無法導(dǎo)入。
在網(wǎng)上查了很多博客都沒能解決問題,目錄頁照著修改了 ,什么GOPATH也修改了,參照很多文章,他們的解決方法似乎都不太適合我。。。。
經(jīng)過頭皮發(fā)麻,差點(diǎn)爆錘電腦后,終于綜合多篇文章解決問題!
這里介紹一下我自己的解決方法
1.設(shè)置中啟用“Enable Go Modules”
Setting中設(shè)置啟用go module(其他go path之類的無需設(shè)置,使用默認(rèn)),路徑:Go——Go Modules,勾選Enable Go Modules
2.在項(xiàng)目跟目錄下執(zhí)行g(shù)o mod init
在編輯器左下方找到“Terminal”選項(xiàng)卡,進(jìn)入后執(zhí)行 go mod init命令
如圖,會(huì)提示正確的命令使用方法。根據(jù)我的情況執(zhí)行如下命令:
這時(shí)候項(xiàng)目目錄中會(huì)創(chuàng)建go.mod文件
然后,我嘗試導(dǎo)入自定義包,發(fā)現(xiàn)問題并沒有解決。
并出現(xiàn)新的問題:
對(duì)該錯(cuò)誤的解釋:開啟模塊支持后,并不能與$GOPATH共存,所以需要把項(xiàng)目從$GOPATH中移出即可
也就是說,開啟模塊支持后我們需要確認(rèn)Project GOPATH 是空的,即將其中的項(xiàng)刪除。
3.確認(rèn)并清除Project GOPATH
Global GOPATH 改不改、有沒有并沒什么影響。
說明:
Global GOPATH:環(huán)境變量中配置的GOPATH路徑
Project GOPATH:項(xiàng)目的GOPATH,最好不好設(shè)置Global GOPATH,因?yàn)檫@樣項(xiàng)目將會(huì)使用到所用配置到GOPATH的文件
返回編輯頁面,導(dǎo)入錯(cuò)誤提示已經(jīng)沒有了。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- Golang import本地包和導(dǎo)入問題相關(guān)詳解
- go語言入門環(huán)境搭建及GoLand安裝教程詳解
- 淺談goland導(dǎo)入自定義包時(shí)出錯(cuò)(一招解決問題)