gpt4 book ai didi

go - 如何将变量从 init 函数(在 main.go 中)导入到不同的文件中?

转载 作者:IT王子 更新时间:2023-10-29 02:03:34 27 4
gpt4 key购买 nike

这是我的目录结构:

 my_project
my_api
main.go
util_dir
util.go

我在 main.go 的 init 函数中传递了一些环境变量,因为我希望在我的服务启动时获取它们。
下面是 main.go 代码片段:

import (
"net/url"
"net"
)

func init() {
...

data := url.Values{}
data.Add("client_id", os.Getenv("CLIENTID"))
data.Add("client_secret", os.Getenv("CLIENTSECRET"))
}

我想在 util.go 中做这样的事情:

 import (
"os"
"github.com/my_project/my_api"
)

func validation() {

data.data.Add("scope", "xyzid")
data.data.Add("another_secret", "SECRET")

client := &http.Client{}
req, err := http.NewRequest("POST", urlStr, bytes.NewBufferString(data.data.Encode()))

}

我收到一个错误,提示 import github.com/my_project/my_api 是一个程序,而不是一个可导入的包

我想知道解决这个问题的方法是什么?

最佳答案

您可以创建一个单独的第三个包,其中包含您的 init 函数,它可以导出从环境变量中读取的值。然后,您的主包和实用程序目录都可以从中读取。只需导入包,就会读取 init 函数,因此您可以确保在导入它的任何程序中都对值进行了初始化。

关于go - 如何将变量从 init 函数(在 main.go 中)导入到不同的文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42140532/

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