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

请参阅此回购协议。我正在尝试创建一个数据存储接口。原因:我不想在开发时依赖于真正的 postgres 数据库,但我想在开发期间使用内存中实现。

这有效,只要我在 main() 中创建实例。例如:db := store.NewMemoryDB()db := store.NewDB()

但是现在我想创建一个基于布尔值的实例。所以我在 store 包中创建了一个函数GetDatastore(bool) 。这适用于 postgres 实现,但不适用于内存中。我收到以下错误:cannot use NewMemoryDB() (type *MockDB) as type *DB in assignment。现在我真的不知道如何解决这个问题。有人可以给我提示吗?如何使内存中的 *DB 兼容?


慕容708150
浏览 87回答 1
1回答

幕布斯6054654

的返回类型GetDatastore是具体类型*DB,而*MockDB不是*DB您收到该错误的原因。相反,您想要的是返回接口类型Datastore,这两者*DB都*MockDB实现了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go