为了账号安全,请及时绑定邮箱和手机立即绑定

Golang 接口来简化依赖关系?

Golang 接口来简化依赖关系?

Go
慕的地8271018 2021-06-29 21:16:59
我在处理接口时遇到了问题。所以我使用 Go 包来处理我的 mongodb 东西,但我不想将该包导入到每个模型中。我想将尽可能多的子包(如模型)保留在标准库中。所以我想我会像这样布置一些接口:type m map[string]interface{}type collectionSlice interface {    One(interface{}) error}type collection interface {    Upsert(interface{}, interface{}) (interface{}, error)    Find(interface{}) collectionSlice}type database interface {    C(string) collection}问题是,当我去使用一个函数时:func FindItem(defindex int, d database) (*Item, error) {通过传入我的 mgo.Database 在使用接口的包中找到:item, err := dota.FindItem(int(defindex), ctx.Database)我收到编译器错误:controller/handlers.go:35: 不能在函数参数中使用 ctx.Database (type *mgo.Database) 作为 dota.database 类型:*mgo.Database 没有实现 dota.database(C 方法的类型错误)有 C(string ) *mgo.Collection 想要 C(string) dota.collection我对这个概念遗漏了什么?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 191 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信