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