登录
首页 >  Golang >  Go问答

golang包的组织结构及目录关联

来源:stackoverflow

时间:2024-02-22 13:21:23 369浏览 收藏

今天golang学习网给大家带来了《golang包的组织结构及目录关联》,其中涉及到的知识点包括等等,无论你是小白还是老手,都适合看一看哦~有好的建议也欢迎大家在评论留言,若是看完有所收获,也希望大家能多多点赞支持呀!一起加油学习~

问题内容

我是 Golang 新手,对包的概念相当了解,但对它们与文件夹/目录位置的关系有疑问。

所以我正在开发一个相当大的项目,在 /pkg 目录内有多个子目录。可能声明了 30 多个不同的 package ___ 命名空间。

当然,通常目录中的所有文件都将具有相同的包,例如/pkg/system/api-client;该目录中的所有文件均声明为 package apiclient

当我注意到 package config 的两个文件时,问题就出现了;一个在 /pkg/config/config.go 中,另一个在 /pkg/writer-job/pkg/config/config.go 中。

它们是同一个包的一部分吗?如果是这样,这方面的惯例是什么(因为它看起来很分散)?如果不是,如何在词法上将 config 分离为两个单独的包?我确实搜索了文档,但没有看到这个。


正确答案


有两个概念:包名和导入路径。

包名称是您在 go 文件中使用 package 作为第一个语句声明的名称。一个目录最多可以包含一个包。

导入路径是导入该包的方式,并显示该包的位置。导入后,声明的 package 名称将用于限定从该包导出的标识符。

如果包名称发生冲突,您可以为其中一个定义别名。

import (
   "someproject/pkg/config"
   writerconfig "someproject/pkg/writer-job/config"
)

然后,config.x 引用第一个包,writerconfig.x 引用第二个包。

好了,本文到此结束,带大家了解了《golang包的组织结构及目录关联》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

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