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

为什么变量是 nil 虽然我在那里放了对对象的引用

为什么变量是 nil 虽然我在那里放了对对象的引用

Go
尚方宝剑之说 2021-09-10 21:20:40
我无法弄清楚为什么调用ConnectToMongo变量后session仍然为零。如果ConnectToMongo不接受引用类型,ConnectToMongo(session mgo.Session)但*mgo.Session在返回函数后必须保存引用变量类型,我会理解ConnectToMongopackage mainimport (    "fmt"    "gopkg.in/mgo.v2")func ConnectToMongo(session *mgo.Session) {    if session == nil {        var err error        session, err = mgo.Dial("localhost:27028")        if err != nil {            panic(err)        }    }}func main() {    var session *mgo.Session    ConnectToMongo(session)    if session == nil {        fmt.Println("nil. Why?")    }}它输出:nil. Why?更新package mainimport (    "fmt"    "gopkg.in/mgo.v2")func ConnectToMongo(session **mgo.Session) {    if session == nil {        var err error        *session, err = mgo.Dial("localhost:27028")        if err != nil {            panic(err)        }    }}func main() {    var session *mgo.Session    ConnectToMongo(&session)    if session == nil {        fmt.Println("nil. Why?")    } else {        fmt.Println("not nil. Ok.")    }}相同的输出:nil. Why?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 142 浏览
慕课专栏
更多

添加回答

举报

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