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)

最后,如果本篇随笔有任何问题,请一定不吝指正!😘

posted @ 2023-05-18 21:28  A_chestnut  阅读(693)  评论(0编辑  收藏  举报
Live2D