怎样建小型网站,钓鱼网站怎么搭建,青岛一地发布重要公告,果洛电子商务网站建设哪家快在golang中#xff0c; 我们通常使用os包来获取环境变量#xff0c;如#xff1a;
os.Getenv()
os.LookupEnv()
等。
但如果我们使用goland编译器#xff0c;在编译是#xff0c;这时操作环境变量#xff0c;会发现os包读取到的环境变量值不变#xff1a; 新增后 我们通常使用os包来获取环境变量如
os.Getenv()
os.LookupEnv()
等。
但如果我们使用goland编译器在编译是这时操作环境变量会发现os包读取到的环境变量值不变 新增后读到的值还是空值 修改后读到的还是修改前的值。 排查了好久才发现一些问题 goland在启动时会加载环境变量并在运行时缓存这些变量导致在系统上操作缓存变更后os包读到值不会变。
且重启某个项目是无效的需要关闭所有项目把goland都关闭后重新打开才能生效。
但这个其实很麻烦每次一修改就需要重启所有项目。
我只找到一个不是办法的办法就是当你需要修改某个项目的环境变更且不想关闭其他项目时可以在该项目启动的代码或是新增一个临时项目执行
os.Setenv()
或
syscall.SetEnvironmentVariable()
去更新环境变量然后再去掉代码是有点麻烦。
os.Setenv()只能单次生效
syscall.SetEnvironmentVariable()我还没测试过
我只用过goland编译器不知道其他编译器会不会出现这种问题或是哪位大神有其他解决办法可以发评论告知下