我無法弄清楚為什么調(diào)用ConnectToMongo變量后session仍然為零。如果ConnectToMongo不接受引用類型,ConnectToMongo(session mgo.Session)但*mgo.Session在返回函數(shù)后必須保存引用變量類型,我會(huì)理解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 回答
- 0 關(guān)注
- 156 瀏覽
添加回答
舉報(bào)
0/150
提交
取消