golang中包间共享常数

golang中包间共享常数,go,Go,我有以下代码,需要在cmdpackage中有多个包 PATH_SEP = string(os.PathSeparator) 我的项目结构如下 go/src/my proj -cmd --runners --otherpackage -- package2 -- constants --…. 我把代码放在常量中 PATH_SEP = string(os.PathSeparator) const2 etc 在流道和包装2/3等中,我使用这个常数 可以吗?否则,我需要复制其他包的代码。我建议使

我有以下代码,需要在
cmd
package中有多个包

PATH_SEP = string(os.PathSeparator)
我的项目结构如下

go/src/my proj
-cmd
--runners
--otherpackage
-- package2
-- constants
--…. 
我把代码放在常量中

PATH_SEP = string(os.PathSeparator)
const2 etc
在流道和包装2/3等中,我使用这个常数


可以吗?否则,我需要复制其他包的代码。

我建议使用常量字段声明struct,并将该struct导入任何要使用常量的包中

package cmd
type Constants struct{
    const1 int
    const2 int
}
最好有一个单独的常量文件。创建一个名为global.go的文件,其中包含要在不同包中使用的所有常量结构,这样您的代码就会更干净


注意:我们需要在多个文件中共享常量,因此最好导入包含常量的包。而不是包含方法和其他细节的包,即使我们不需要它们。

您可以使用您描述的常量,它没有任何问题。但它不那么直观。
我要做的是有一个根包
常量
,这些可以在项目中的任何地方使用

go/src/my proj
-cmd
-constants
--runners
--otherpackage
--package2
--….

谢谢,我的
main.go
文件与'cmd''vendor`文件夹等处于同一级别,您建议将global.go const?放在与
main.go
相同的级别,只需将结构导出即可导出变量。谢谢,如果您能够提供指向遵循此模式的某些git repo的链接,那就太好了。谢谢确定创建一个包含文件的文件夹配置。有关项目布局的更多信息,请参见“您的意思是在配置下创建具有结构的文件?”?有推荐信吗?