我是新手,我一直在努力了解有关文件结构和包的最佳实践。根据我的阅读,该internal文件夹包含客户端无法使用的pkg代码,并且该文件夹包含可以在外部使用的代码。假设我有一个资源,它有一些内部实现,也有一些可以在外部使用的功能。我会像这样在两个文件夹下放同名的包吗?- my-app
- pkg
- accounts
- accounts.go (package accounts)
- internal
- accounts
- accounts.go (package accounts)然后当我导入时指定"app/my-app/internal/accounts"或"app/my-app/pkg/accounts"取决于我要导入的模块?如何处理同名的内部和外部包?
1 回答

慕村225694
TA贡献1880条经验 获得超4个赞
外部可导入的包可以在文件夹以外的任何文件internal
夹中。没有要求也没有广泛同意这些包应该放在一个pkg
文件夹中。
应用程序可以通过在导入规范中指定包名来解决同名包之间的冲突:
import ( iaccounts "my-app/internal/accounts" accounts "my-app/accounts" )
用于iaccounts
指代内部包和accounts
指代常规包。
- 1 回答
- 0 关注
- 198 浏览
添加回答
举报
0/150
提交
取消