go mod 引入自定义包,出现package main报红错误

问题是这样的,我在gopath路径外建立了一个文件夹用于测试go mod用法
目录是:
test
├── aab
│ └── aab.go
└── main.go
其中main.go文件里面引入了aab包

首先go mod init test,生成了go.mod

现在目录是这样的
test
├── aab
│ └── aab.go
├── go.mod
└── main.go
然后main 文件的第一行,就报错了
也就是那个package main

搜了一大堆资料,看到大家的各种复制粘贴资料,也没解决我的问题

在搞了大半天之后,我在aab目录下,执行了一次
go mod init aab
现在目录是这样的
test
├── aab
│ └── aab.go
│ └── go.mod
├── go.mod
└── main.go

然后报错就消失了,正常使用

最后想说,这个go mod确实很好用

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
go package 是指在 Go 语言中,将一组相关的文件(通常是一个目录)组织起来,作为一个独立的模块。一个 go package 可以含多个 go 文件。每个 go package 通常会定义一些功能、变量、函数和方法供其他代码模块使用。 import 是用来在 Go 代码中引入其他的括标准库和第三方)。通过 import,我们可以在当前的 go package 中使用被导入的定义的函数、变量和类型。使用 import 之后,我们可以通过名加函数名的方式来使用被导入中的内容。 go.mod 是 Go 语言新增的用于管理依赖关系的文件。它会记录当前项目所依赖的其他的名称和版本号。我们可以使用 go mod init 命令来初始化一个 go.mod 文件,并通过 go mod tidy 命令自动分析代码中的依赖关系并更新 go.mod 文件。 私有引入是指在引入其他时,只在当前 go package 内部可见,而不对外暴露。在 Go 语言中,如果的名称以小写字母开头,则表示该是私有,只能在同一个内部使用。其他的无法引用和访问私有中的内容。这种设计可以有效地保证的封装和隔离,同时避免了不必要的依赖和复杂度。 对于私有引入,我们可以在同一个 go package 内部直接使用,而无需使用 import 进行引入。这样做的好处是可以提高代码的安全性和可维护性,同时也可以减少出现命名冲突的可能性。但是私有只能在当前 go package 内部使用,无法被其他 go package 引用。所以,在设计和组织软件结构时,需要合理地划分和命名,以便满足不同之间的依赖关系。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值