0
在測試我的一些代碼庫時,我發現使用接口模擬「gopkg.in/mgo.v2」中的對象非常有用。我遇到了一個問題,其中mgo.Query沒有實現我的界面查詢。嘲諷mgo鏈接函數
import mgo "gopkg.in/mgo.v2"
type Collection interface {
FindId(interface{}) Query
Find(interface{}) Query
UpdateId(interface{}, interface{}) error
Update(interface{}, interface{}) error
UpsertId(interface{}, interface{}) (interface{}, error)
Insert(...interface{}) error
RemoveId(interface{}) error
}
type Query interface {
One(interface{}) error
All(interface{}) error
Select(interface{}) Query
}
var _ Query = (*mgo.Query)(nil)
查詢投踢了錯誤:
cannot use (*mgo.Query)(nil) (type *mgo.Query) as type Query in assignment:
*mgo.Query does not implement Query (wrong type for Select method)
have Select(interface {}) *mgo.Query
want Select(interface {}) Query
這是不能夠在一個界面來定義鏈功能的問題?我不知道如何製作一個與mgo實現相匹配的Select標頭。