請(qǐng)參閱此回購(gòu)協(xié)議。我正在嘗試創(chuàng)建一個(gè)數(shù)據(jù)存儲(chǔ)接口。原因:我不想在開(kāi)發(fā)時(shí)依賴于真正的 postgres 數(shù)據(jù)庫(kù),但我想在開(kāi)發(fā)期間使用內(nèi)存中實(shí)現(xiàn)。這有效,只要我在 main() 中創(chuàng)建實(shí)例。例如:db := store.NewMemoryDB()或db := store.NewDB()。但是現(xiàn)在我想創(chuàng)建一個(gè)基于布爾值的實(shí)例。所以我在 store 包中創(chuàng)建了一個(gè)函數(shù)GetDatastore(bool) 。這適用于 postgres 實(shí)現(xiàn),但不適用于內(nèi)存中。我收到以下錯(cuò)誤:cannot use NewMemoryDB() (type *MockDB) as type *DB in assignment?,F(xiàn)在我真的不知道如何解決這個(gè)問(wèn)題。有人可以給我提示嗎?如何使內(nèi)存中的 *DB 兼容?
1 回答

幕布斯6054654
TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個(gè)贊
的返回類型GetDatastore
是具體類型*DB
,而*MockDB
不是*DB
您收到該錯(cuò)誤的原因。相反,您想要的是返回接口類型Datastore
,這兩者*DB
都*MockDB
實(shí)現(xiàn)了。
- 1 回答
- 0 關(guān)注
- 113 瀏覽
添加回答
舉報(bào)
0/150
提交
取消