之前一直正常的項目,莫名其妙的 database/sql 包下的方法、結(jié)構(gòu)體等等IDE都無法識別,出現(xiàn)一堆Unresolved reference錯誤提示,但包導(dǎo)入路徑可以正確定位,而且項目運行也正常,其他包都正常,另一個項目下同樣使用sql包也正常。
折騰半天都沒用,不想重建項目重裝IDE太麻煩,最后嘗試最簡單的升級到 golang 1.12.5 重啟Goland后就正常了,應(yīng)該和版本沒有關(guān)系,重裝下golang就行,估計是Goland文件索引的問題,重裝golang后會重建索引就能正常識別了

import 正常,能正確識別路徑,但不能識別 database/sql 包中的任何方法、結(jié)構(gòu)體等。。。但使用其他包卻都正常,奇怪

升級golang后IDE應(yīng)該是重建了索引,現(xiàn)在就一切正常了
補充:Goland 導(dǎo)入自定義包問題解決
今天在學(xué)習(xí)Go的面向?qū)ο髸r,想測試Go中類屬性、方法的公私有問題,在另外定義一個包后,發(fā)現(xiàn)在main函數(shù)中無法導(dǎo)入。
在網(wǎng)上查了很多博客都沒能解決問題,目錄頁照著修改了 ,什么GOPATH也修改了,參照很多文章,他們的解決方法似乎都不太適合我。。。。
經(jīng)過頭皮發(fā)麻,差點爆錘電腦后,終于綜合多篇文章解決問題!
這里介紹一下我自己的解決方法

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命令

如圖,會提示正確的命令使用方法。根據(jù)我的情況執(zhí)行如下命令:

這時候項目目錄中會創(chuàng)建go.mod文件

然后,我嘗試導(dǎo)入自定義包,發(fā)現(xiàn)問題并沒有解決。

并出現(xiàn)新的問題:

對該錯誤的解釋:開啟模塊支持后,并不能與$GOPATH共存,所以需要把項目從$GOPATH中移出即可
也就是說,開啟模塊支持后我們需要確認(rèn)Project GOPATH 是空的,即將其中的項刪除。
3.確認(rèn)并清除Project GOPATH


Global GOPATH 改不改、有沒有并沒什么影響。
說明:
Global GOPATH:環(huán)境變量中配置的GOPATH路徑
Project GOPATH:項目的GOPATH,最好不好設(shè)置Global GOPATH,因為這樣項目將會使用到所用配置到GOPATH的文件
返回編輯頁面,導(dǎo)入錯誤提示已經(jīng)沒有了。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- Golang import本地包和導(dǎo)入問題相關(guān)詳解
- go語言入門環(huán)境搭建及GoLand安裝教程詳解
- 淺談goland導(dǎo)入自定義包時出錯(一招解決問題)