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

Go接口到数据存储,两种实现

Go接口到数据存储,两种实现

Go
慕容708150 2023-04-17 16:12:44
请参阅此回购协议。我正在尝试创建一个数据存储接口。原因:我不想在开发时依赖于真正的 postgres 数据库,但我想在开发期间使用内存中实现。这有效,只要我在 main() 中创建实例。例如:db := store.NewMemoryDB()或db := store.NewDB()。但是现在我想创建一个基于布尔值的实例。所以我在 store 包中创建了一个函数GetDatastore(bool) 。这适用于 postgres 实现,但不适用于内存中。我收到以下错误:cannot use NewMemoryDB() (type *MockDB) as type *DB in assignment。现在我真的不知道如何解决这个问题。有人可以给我提示吗?如何使内存中的 *DB 兼容?
查看完整描述

1 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

的返回类型GetDatastore是具体类型*DB,而*MockDB不是*DB您收到该错误的原因。相反,您想要的是返回接口类型Datastore,这两者*DB*MockDB实现了。



查看完整回答
反对 回复 2023-04-17
  • 1 回答
  • 0 关注
  • 86 浏览
慕课专栏
更多

添加回答

举报

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