我需要为项目添加一个变量volume_path
。
volume_path是在.env文件中设置的,因此我有2个定义:
.env
.env.testing
在我的代码中,我将var设置为:
var Volume_path = os.Getenv("VOLUME_PATH")
我知道如何在每个文件中设置此var,但我只想定义一次,并使其可用于所有项目,这有可能吗?
答案 0 :(得分:1)
只需使用一个变量,并在需要的任何地方引用该实例。
请注意,您无法从其他包中引用main
包中定义的标识符。因此,如果您有多个软件包,则此变量必须位于非main
软件包中。将其放入软件包example
中,使其以大写字母开头(因此将被导出),然后从其他软件包中导入example
软件包,您可以将其称为example.Volume_path
。
还要注意Volume_path
在Go语言中不是惯用的,您应该将其命名为VolumePath
。
example.go
:
package example
var VolumePath = os.Getenv("VOLUME_PATH")
在其他软件包中:
import (
"path/to/example"
"fmt"
)
func something() {
fmt.Println(example.VolumePath)
}
答案 1 :(得分:0)
解决此问题的首选方法是在程序包(不是main)中设置变量值的实例,并在程序中全部使用它,
示例:
var Volume string
var Volume = os.Getenv("VOLUME_PATH")
请记住执行以下规则:
大写首字母:该名称对于包的客户可见 否则:名称(或_Name)对软件包的客户端不可见