为了账号安全,请及时绑定邮箱和手机立即绑定

即使在初始化后变量也是 nil

即使在初始化后变量也是 nil

Go
慕尼黑5688855 2022-05-23 16:34:32
这是代码 config/config.goconst PROJECT_ID = "projectid"var Ctx = context.Background()var DSClient *datastore.Clienttype Logger struct {    Pkg string}func (l *Logger) Error(v ...interface{}) {    log.Print("Error|", l.Pkg, ": ", v)}func (l *Logger) Info(v ...interface{}) {    log.Print("Info|", l.Pkg, ": ", v)}var propFile = "${env}.properties"var Props *properties.Propertiesfunc init(){    Props = properties.MustLoadFile(propFile, properties.UTF8)    DSClient, err := datastore.NewClient(Ctx, PROJECT_ID)    if err != nil {        log.Fatal("Couldn't connect to DataStore: ", err)    }    log.Print("DataStore Client: ", DSClient)}索引/index.go    import (    ...    "github.com/shwetanka19/project/internal/config")    urs := [] user.User{}    q := datastore.NewQuery("users").Filter("email=", greq.Email).Limit(1)    logger.Info("Now Client: ", config.DSClient)    keys, err := config.DSClient.GetAll(config.Ctx, q, &urs)日志DataStore Client: &{0xc000010840 0xc000119d40 projectid}[Now Client:  <nil>]为什么客户端已经初始化时现在为零?在 API 调用期间调用 index.go 中的代码。当服务器启动时调用配置。
查看完整描述

1 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

当你这样做

DSClient, err := datastore.NewClient(Ctx, PROJECT_ID)

您创建了一个变量DSClient,它会影响另一个变量。您只需将其更改为:

var err error
DSClient, err = datastore.NewClient(Ctx, PROJECT_ID)


查看完整回答
反对 回复 2022-05-23
  • 1 回答
  • 0 关注
  • 96 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信