golang使用go.mod之后引入本地包飘红解决

博主最近几年才接触golang,基本是个纯纯的调包侠,只会crud,工程配置别人写好了我拿过来用。那些配置在我看来就应该是那个样子,当自己用起来才发现到处都是坑,最近又发现了一个:

go.mod是goland自带的包管理工具,直接在命令行输入go.mod init,它会提示让你输入一些example/v1什么什么的,


Example usage:
        'go mod init example.com/m' to initialize a v0 or v1 module
        'go mod init example.com/m/v2' to initialize a v2 module

自己从本地从零起一个工程就随便写写直接用了test作为包名(即go mod init test),于是在引入本地包的时候出现问题了。(其实还是对golang包的概念理解不行)

翻看以前工程的代码,尝试用当前目录practice/data引入,一直不对。上网查了下发现有人是把go.mod重新生成,还要用什么demo/v1,接着再用demo/v1/data引入,我试了下,确实可以。但是我不信有这么死板吗?

我试了下先生成go.mod,然后再在当前目录塞文件,发现还是可以直接引入,也就是说这个引入成功与否跟先生成go.mod还是后生成一点关系没有。

最后发现其实就是生成go.mod的时候直接用根目录就一切都解决了,当你用根目录生成的时候,go.mod第一行会显示go.mod这个文件存在在当前module里。其实也可以用test/data引入,只要保证名称与go.mod生成的时候起的名字一致就行。

可以认为go module大于go package。(这二者的关系等以后再探究,博主最近在准备面试,先挖一个小坑)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值