На ходу, как создать интерфейс, когда методы вызываются с помощью * 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 , или мне нужно сделать резервную копию и должны ли получатели быть самими типами, а не указателями на типы?

5
задан cc young 22 June 2011 в 11:48
поделиться