【B站首发,转载CSDN】
相信很多小伙伴在初次接触Go语言时,都会遇到一个问题:即如何调用相同文件夹下的其他包的数据(变量、函数等)。本人编程小白被这个问题困扰了许久,明明按照网上&教学视频的步骤对文件夹&Go文件进行归纳,但在执行的时候却被提示“无法找到Go文件”(Package XXX is not find in xxx/xxx...),这是为什么呢?

终于在借助各种资源和不断尝试后,终于解决了该问题。因为在网上好像没有看到完整的解决方法的流程,同时我也想通过分析流程来加深对Go语言的了解,所以我决定撰写这篇指引{以Goland 2024.1.1版本为例}。(这是我第一次撰写编程指引,如有不足请多多包涵,谢谢!)
步骤一:按顺序创建文件
建立与下图一样的目录结构,每个程序都必须要有一个main包,我们会在main包中调用test1(lib1)和test(lib2)的api。我们需要创建两个与需要调用包相同命名的文件夹,这个文件夹需要和main包同级,并把在对应的文件夹中创建Go包。【注意,如果是在同一个文件夹中创建多个包,那么该文件夹下的所有包名均和该文件夹名相同】

创建完成后,我们就可以在Go包中书写代码。请注意,在Go语言中没有public和private的声明。一个函数是公开的还是私有的,取决于它的首字母是否为大写:首字母大写表示公开,小写则表示私有。

【test2 函数与 test1函数相同,只是名称不同】
步骤二:在终端上输入go mod init命令初始化模块
首先我们需要在Goland上手动配置,路径是: 视图(view)>>>工具窗口(Tool windows)>>>终端(Terminal)-->显示终端界面。


然后,我们输入【go mod init 主文件夹名】 和 【go mod tidy】,输入完成后再输入【tree】展现项目结构和【go run 路径/main.go】检查是否mod环境已配置完成,如下图所示。(注意,go run后输出main.go的结果才算环境配置完成)

【构建好目录和配置好环境后,修改文件名&包名不会改变原有目录,同时在main包中引入的相对路径也会自动更改。例如,把5-init改为refer,把lib1和lib2改为test1和test2】

步骤三:在main.go中import其他包进行输出
import (“相对路径/xxx.go” ......)
func main() {引用包名.Func() ... }

输出结果:

输出完成,大功告成!哦耶!(听说帅哥美女们都会一键三连呢~)
希望这个教程对你有所帮助!如果有更好的方法欢迎在评论区留言,互相进步!
1万+

被折叠的 条评论
为什么被折叠?



