我在 main 函数调用了 godotenv.Load(),但是在其他包里使用时如果不把 os.Getenv 放在函数里,直接在函数外运行,就会获取不到环境变量,大概是因为 godotenv 还没把变量读进去吧,这个情况下应该怎么写呢?必须写一个函数 return 这些环境变量吗?
1
NessajCN 2023-07-26 10:09:01 +08:00
你自己就有答案了不是吗
把 os.Getenv 放到函数里就行了 |
2
Vegetable 2023-07-26 10:13:46 +08:00
func init() {
godotenv.Load() } 搜索 golang init 函数 |
3
ssshooter OP |
5
FanGanXS 2023-07-26 10:35:03 +08:00
了解一下 init 函数
|
6
mcfog 2023-07-26 10:53:22 +08:00
比较简单&勉强算好维护的办法
package config func init() { LOAD_YOUR_CONFIG() } func Get(string) string { ... } |
7
yleoer 2023-07-26 11:00:51 +08:00
一般都是将 env 读取出来,覆盖配置文件的值,然后保存到配置结构体中,后续只需要读取配置参数
|
8
learningman 2023-07-26 11:52:00 +08:00 via Android
常量和 init 不保证初始化顺序的,还是别这么搞比较好
|
9
lanlanye 2023-07-26 12:53:07 +08:00 via iPhone
|
10
ysmood 2023-08-16 10:43:15 +08:00
|