内部包提供了一种在项目内组织和构建 Go 代码的方法,同时将其可见性限制在项目的目录结构内。理解内部包的概念对于维护结构良好且可管理的代码库至关重要。
在您的示例中,您在 GOPATH 树外部有一个 project/ 文件夹,以及一个包含 foo 和 bar 包的 inside/ 目录。当尝试从 main.go 导入这些包时,您会遇到问题。
随着 Go v1.11 及更高版本中引入模块,之前的 $GOPATH/不再需要项目路径的 src 目录结构。相反,项目目录根部的 go.mod 文件(模块定义文件)用于定义项目的模块、其依赖项及其版本。
要解决您的特定问题,您可以采用以下方法做法:
go.mod 文件示例:
module project go 1.16 require internal/bar v1.0.0 replace internal/bar => ./internal/bar require internal/foo v1.0.0 replace internal/foo => ./internal/foo
import ( "project/internal/foo" "project/internal/bar" )
通过执行这些步骤,您的代码将识别并允许使用您的内部包。请记住,内部包的目的是维护清晰的层次结构并防止外部访问代码的某些部分。它们是有效构建和组织 Go 项目的宝贵工具。
以上是如何在我的 Go 项目中成功使用内部包?的详细内容。更多信息请关注PHP中文网其他相关文章!