登录
首页 >  Golang >  Go问答

Go 库和 pkg 包共享相同的标识符

来源:stackoverflow

时间:2024-02-06 20:39:24 370浏览 收藏

小伙伴们有没有觉得学习Golang很有意思?有意思就对了!今天就给大家带来《Go 库和 pkg 包共享相同的标识符》,以下内容将会涉及到,若是在学习中对其中部分知识点有疑问,或许看了本文就能帮到你!

问题内容

我是一个 go 新手,我一直在努力理解文件结构和包方面的最佳实践。

据我所知,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" 取决于我要导入的模块?如何处理同名的内部和外部包?


正确答案


内部包在 the Go command documentationthis design document 中描述。

外部可导入包可以位于除 internal 文件夹之外的任何文件夹中。没有要求也没有广泛同意这些包应位于 pkg 文件夹中。

应用程序可以通过在 import specification 中指定包名称来解决同名包之间的冲突:

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

使用 accounts 引用内部包,使用 accounts 引用常规包。

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>