今天遇到個奇葩的bug水泉。
我的工程項目是demo1善涨,里面有3個文件,分別是main.go草则、Block.go钢拧、BlockChain.go,這哥仨同屬main包炕横。
其中源内,BlockChain.go 中,定義了一個函數(shù) NewBlockChain()看锉,然后我在 main.go 文件的 main 函數(shù)中姿锭,調(diào)用這個NewBlockChain() 函數(shù)。那么伯铣,問題來了呻此。當(dāng)我在 Goland 中運行 main.go 文件的時候,報錯: undefined: NewBlockChain腔寡,what焚鲜?黑人問號臉。
同個package中放前,不同的 .go 文件忿磅,它們之間函數(shù)應(yīng)該是可以相互調(diào)用的才對,(main函數(shù)除外)凭语,那為什么會報錯葱她?
查了查資料,這是由于BlockChain.go 文件未被編譯導(dǎo)致的似扔。這就怪了吨些,運行 main.go 文件的時候搓谆,Goland 不應(yīng)該自動把 main.go 文件中,所使用到的BlockChain.go 豪墅,也給編譯了么泉手?
百思不得其解,暫且歸根于Goland 出bug了偶器。
下面講講遇到這種情況怎么破斩萌?使用命令行。
1屏轰、打開命令行工具:2颊郎、先使用 pwd 命令,查看當(dāng)前工作路徑亭枷;
3袭艺、再使用 ls 命令搀崭,查看當(dāng)前工作路徑下的文件叨粘;