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

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


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

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

總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
golang踩坑實戰(zhàn)之channel的正確使用方式
Golang?channel是Go語言中一個非常重要的特性,除了用來處理并發(fā)編程的任務中,它還可以用來進行消息傳遞和事件通知,這篇文章主要給大家介紹了關于golang踩坑實戰(zhàn)之channel的正確使用方式,需要的朋友可以參考下2023-06-06
golang 實現(xiàn)時間戳和時間的轉(zhuǎn)化
這篇文章主要介紹了golang 實現(xiàn)時間戳和時間的轉(zhuǎn)化操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-05-05
Golang10進制轉(zhuǎn)16進制的幾種方法代碼示例
這篇文章主要給大家介紹了關于Golang10進制轉(zhuǎn)16進制的幾種方法,進制轉(zhuǎn)換是Golang的一些基本操作,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-07-07
go數(shù)據(jù)結構和算法BitMap原理及實現(xiàn)示例
這篇文章主要為大家介紹了go數(shù)據(jù)結構和算法BitMap原理及實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-07-07

