使用继承结构时golang类型不匹配

时间:2017-08-01 08:17:38

标签: go mgo

    type MongoDBConfig struct {
    *mgo.DialInfo
}

func ConfigureMongoDB() (*MongoDBConfig, error) {
    //Get gopath

    GOPATH := os.Getenv("GOPATH")

    file, err := os.Open(GOPATH+RESOURCE_PATH)

    if err != nil {
        return nil, err
    }
    decoder := json.NewDecoder(file)

    mongoConfig := MongoDBConfig{}

    er := decoder.Decode(&mongoConfig)

    if er != nil {
        return nil, er
    }
    return &mongoConfig, nil
}

func InitMongoDB() (*Session, error){

    mongoConfig, err := ConfigureMongoDB()

    if err != nil {
        return nil, err
    }

    session, mongoerr := mgo.DialWithInfo(mongoConfig)

}

传递mongoConfig时在最后一行获取错误。我使用DialInfo类型创建了MongoDBConfig的结构类型。

  

不能使用mongoConfig(类型* MongoDBConfig)作为类型* DialInfo

1 个答案:

答案 0 :(得分:-1)

明确访问embeded字段:

 session, mongoerr := mgo.DialWithInfo(mongoConfig.DialInfo)