全局变量使用环境变量初始化值不变

如下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一直为空

你可能感兴趣的:(全局变量使用环境变量初始化值不变)