全局变量使用环境变量初始化值不变
2017-10-16 本文已影响0人
风千寻艾
如下demo片段,特别简单的问题,全局变量TEST_ENV通过获取环境变量testgo初始化,那么当环境变量testgo的值变化时会不会影响TEST_ENV?
代码语法上看,肯定不会变,但是不放心,写以下demo测试,结论:肯定不会变啦
package main
import (
"fmt"
"os"
"strconv"
"time"
)
var TEST_ENV = os.Getenv("testgo")
//func init() {
// os.Setenv("testgo", "test")
// TEST_ENV = os.Getenv("testgo")
//}
func main() {
fmt.Println("----------")
for i := 0; i < 3; i++ {
fmt.Println(TEST_ENV)
fmt.Println(os.Getenv("testgo"))
time.Sleep(600)
fmt.Println("----------")
os.Setenv("testgo", "test"+strconv.Itoa(i))
}
}
执行结果:
----------
----------
test0
----------
test1
----------
初始testgo的值为空,即使赋值后,也不影响TEST_ENV的值,TEST_ENV一直为空