gpt4 book ai didi

variables - 在 Go 中设置全局条件变量

转载 作者:IT王子 更新时间:2023-10-29 02:25:14 24 4
gpt4 key购买 nike

我想根据 ENV var 的值在全局包级别在 Go 中有条件地解析和设置变量,这样我就不必每次都在实用程序函数中检查它(作为变量将在运行时声明一次)。比如我要完成的是(Go伪代码):

import (
"fmt"
"os"
"strconv"
)

// This works to read the value of MYVAR (=true/false)
var myvar string = os.Getenv("MYVAR")

// Apparently this is too much for Go
var myvarbool, _ = strconv.ParseBool(myvar)

// Utility function to check for value
func mycheck() {
if myvarbool {
fmt.Print("MYVAR is true")
}
}

这是一个库包,所以没有 main() 函数来进行这种设置,但我希望能够在库中的其他函数中使用 mycheck(),但不想每次调用 mycheck() 时都必须读取和解析 MYVAR。

最佳答案

完成您想要做的事情的一种方法是在 init() 函数中处理环境变量,因此像下面这样的事情会起作用:

package main

import (
"fmt"
"os"
"strconv"
)

var (
myvar string = os.Getenv("MYVAR")
myvarbool bool
)

func init() {
myvarbool, _ = strconv.ParseBool(myvar)
}

// Utility function to check for value
func mycheck() {
if myvarbool {
fmt.Print("MYVAR is true")
}
}

Playground

关于variables - 在 Go 中设置全局条件变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28526138/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com