我无法弄清楚为什么调用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
提交
取消