golang?run時報undefined錯誤的解決
golang run時報undefined錯誤
問題描述
在golang中同一個包中有兩個文件
分別為main.go 和 a.go,main函數(shù)在main.go中
并且在main函數(shù)中引用了a.go中的一個結(jié)構(gòu)體
運行時報錯
$ go run main.go
# command-line-arguments
.\main.go:170:10: undefined: TestLinkTask
原因
- go run: 會先進(jìn)行編譯操作,而在此處的編譯它只會以這個main.go為準(zhǔn),導(dǎo)致引用其他文件出現(xiàn)找不到的情況
- go build:不一樣,它會自動查找引用文件并打包
解決辦法
- 方法一:
go run main.go a.go
- 方法二:
go run *.go
- 方法三:
go build
goland:運行時undefined: insertRowDemo報錯

這個錯誤很久之前就遇到過了,但是當(dāng)時沒有解決,這次又讓我碰到了,還是沒有立刻解決掉,其實這個錯的原因挺簡單的。
比如,有兩個文件在goland同一個項目中的同一個main包中,main.go,Demo1.go,main中調(diào)用Demo1.go中的insertRowDemo()


點擊運行時發(fā)生錯誤。
報錯說沒有沒有定義,我勒個去,編譯器都顯示調(diào)用了,運行時你告訴我沒定義。
好他么詭異。原因是,配置文件的問題,不小心更改了項目的配置文件,在你運行時main方法時,goland會自動給項目加上配置文件,只不過加入的深淺不一樣,(當(dāng)然可以自己進(jìn)行配置)。
深入到直接對main.go進(jìn)行配置,導(dǎo)致,運行時只看到自己文件中的函數(shù),看不到main.go外的文件,當(dāng)然在運行時顯示沒定義了。
解決辦法,把配置文件重新更改到項目深度不要精確到文件。

運行項目的時候,盡量點擊主函數(shù)main()左邊的那個小綠箭頭進(jìn)行運行,或者在main()函數(shù)中右鍵點擊運行。
點到函數(shù)的外面,大聰明的goland,就會自動更改你的配置,導(dǎo)致運行出錯。

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
掌握Golang中的select語句實現(xiàn)并發(fā)編程
Golang中的select語句用于在多個通道間選擇可讀或可寫的操作,并阻塞等待其中一個通道進(jìn)行操作。可以用于實現(xiàn)超時控制、取消和中斷操作等。同時,select語句支持default分支,用于在沒有任何通道可操作時執(zhí)行默認(rèn)操作2023-04-04
golang監(jiān)聽ip數(shù)據(jù)包的實現(xiàn)步驟(golang純享版)
golang接口實現(xiàn)調(diào)用修改(值接收者指針接收者)場景詳解
Golang實現(xiàn)多存儲驅(qū)動設(shè)計SDK案例

