У меня есть фрагмент кода, в котором я получаю сообщение об ошибке, когда использую :=
, но когда я использую =
, он компилируется правильно. Что я узнал, так это то, что :=
требует определения только одной переменной, другие не должны быть определены, но, учитывая этот код, является ли это ошибкой в 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)
to
var err error
Session, err = mgo.Dial(url)