試圖創建一個接口,但方法有*Type
,不Type
接收機在go中,如何在* Type調用方法時創建接口?
道歉:困和誤讀的錯誤消息。以爲我在創建數據庫接口時被阻止,實際上我誤用了它。對不起... ...將來會更加小心!
type Char string func (*Char) toType(v *string) interface{} { if v == nil { return (*Char)(nil) } var s string = *v ch := Char(s[0]) return &ch } func (v *Char) toRaw() *string { if v == nil { return (*string)(nil) } s := *((*string)(v)) return &s }
從這裏我想包含方法toType
和toRaw
type DB interface{ toRaw() *string toType(*string) interface{} }
不起作用,因爲該功能接收器指針的接口。我這樣說是因爲當我嘗試使用它,我得到了error.k
Char does not implement DB (toRaw method requires pointer receiver)
有沒有一種方法來創建toType
和toRaw
的接口,或者我需要備份,並且具有接收器是類型本身而不是指向類型的指針?
不知怎的,這是很難得到你的代碼背後的想法。請提供更多信息。 – Mue
嘗試使用func'toRaw'和'toType'創建數據庫接口。但不能,因爲funcs的接收器是指針。有什麼辦法可以聲明一個包含'toRaw'和'toType'的數據庫接口? –