这个涉及go语言依赖管理。1.11以后默认启用go mod,go mod默认只在go root下寻找依赖包,不会找go path。所以如果你的代码结构严格按照go语言规范,源码都在go path/src下的话那么就在go path目录下执行go env -w GO111MODULE=off命令来关闭go mod;如果不想严格按照go规范,希望将源码按照自定义目录放置的话,那么就需要启用go mod,在go path目录下执行命令go env -w GO111MODULE=on,然后通过go mod init [模块名称,理论上随意]会自动生成go.mod文件以及pkg目录,然后你的代码中就正常import需要的包即可,只不过import时package的名称要完整一些
learn1/learn
建项目的时候需要建立 go Modules 项目 而非go 项目
执行init方法是和引入包是否带有下划线("_"),大写的Learn1和init方法没有关系
pom导包问题
解决方法:在file-settings-gopath中的project把这个工程的目录加进去,问题就解决了,点赞吧!
看调试信息是不是没有找到learn1和show2的文件?如果是的话,在file-settings-gopath中的project把这两个文件的目录加进去。
或者整理下目录,按照src bin pkg的结构整理
换了个目录,创建了一个src目录,在这里就正常了
执行1次
导入重复包只会被导入一次。