VScode下golang 同一個包下不同文件之間函數調用問題
VScode下golang 同一個包下不同文件之間函數調用問題
1.問題發現
最近在vscode上學習golang的相關開發,發現這樣一個問題:
同文件夾下的兩個文件,在都處于main包的情況下,無法在mian()里直接調用另一個文件中的函數,會報錯:undefined。
2.原因分析
從語法層面上似乎并無問題,但是Go中main包默認不會加載其他文件, 而其他包都是默認加載的。如果 main 包有多個文件,則在執行的時候需要將其它文件都帶上,即執行 go run *.go。
3.問題解決
最簡單的辦法當然就是都用go run *.go命令執行啦。
那有沒有以后都省力一些的呢?
一般來講,大家用的都是Code runner插件作為運行工具。但是用的時候需要配置以下該插件的settings.json。
由于筆者是小白,所以參考網絡上的方案,一共是兩個地方需修改。以下列出:
"code-runner.executorMap": {
"go": "cd $dir && go run .", // 替換處1
},
"code-runner.executorMapByGlob": {
"$dir\\*.go": "go" // 替換處2
}
4.注意事項
- 首先,要注意settings.json的更改是改的是用戶區還是工作區
- 其次,如果你對settings.json做了更改后發現仍然報錯。新建一個文件,將當前文件內容copy過去后刪掉原來的,應該就好了。(這個是我自己試出來的,說實話不知道為啥2333)
最后,如果本篇隨筆有任何問題,請一定不吝指正!??

浙公網安備 33010602011771號