【发布时间】:2017-12-19 00:02:43
【问题描述】:
我有一段代码,当我使用:= 时出现错误,但当我使用= 时,它可以正确编译。我了解到:= 只需要定义至少一个变量,其他的不需要定义,但是考虑到这段代码是 Go 中的一个错误吗?
无法编译的代码:
错误:services/db_service.go:16:会话已声明且未使用
package services
import (
"gopkg.in/mgo.v2"
"log"
)
const DB = "mmdb_dev"
var Session *mgo.Session
func InitMongo() bool {
url := "mongodb://localhost"
log.Println("Establishing MongoDB connection...")
//var err error
Session, err := mgo.Dial(url)
if err != nil {
log.Fatal("Cannot connect to MongoDB!")
return true
} else {
return false
}
}
func GetNewSession() mgo.Session {
return *Session.Copy()
}
编译后的代码
package services
import (
"gopkg.in/mgo.v2"
"log"
)
const DB = "mmdb_dev"
var Session *mgo.Session
func InitMongo() bool {
url := "mongodb://localhost"
log.Println("Establishing MongoDB connection...")
var err error
Session, err = mgo.Dial(url)
if err != nil {
log.Fatal("Cannot connect to MongoDB!")
return true
} else {
return false
}
}
func GetNewSession() mgo.Session {
return *Session.Copy()
}
变化是
Session, err := mgo.Dial(url)
到
var err error
Session, err = mgo.Dial(url)
【问题讨论】:
标签: mongodb go compiler-errors mgo go-gin