为了账号安全,请及时绑定邮箱和手机立即绑定

Go internal 和 pkg 包共享同名

Go internal 和 pkg 包共享同名

Go
侃侃无极 2023-01-03 15:40:00
我是新手,我一直在努力了解有关文件结构和包的最佳实践。根据我的阅读,该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个赞

Go 命令文档本设计文档中描述了内部包。

外部可导入的包可以在文件夹以外的任何文件internal夹中。没有要求也没有广泛同意这些包应该放在一个pkg文件夹中。

应用程序可以通过在导入规范中指定包名来解决同名包之间的冲突:

import (
    iaccounts "my-app/internal/accounts"
    accounts "my-app/accounts"
    )

用于iaccounts指代内部包和accounts指代常规包。


查看完整回答
反对 回复 2023-01-03
  • 1 回答
  • 0 关注
  • 198 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号