Попытка создать интерфейс, но методы имеют *Type
, а не 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{}
}
не работает, так как получатели функций являются указателями. Я говорю это, потому что, когда я пытаюсь использовать это, я получаю ошибку.k
Char does not implement DB (toRaw method requires pointer receiver)
Есть ли способ создать интерфейс из toType
и toRaw
, или мне нужно сделать резервную копию, и получатели должны быть самими типами, а не указателями на типы?