Методы интерфейса - PullRequest
0 голосов
/ 16 мая 2010

Будет ли правильным следующий способ реализации методов, привязанных к интерфейсу? (getKey, getData)

type reader interface {
    getKey(ver uint) string
    getData() string
}

type location struct {
    reader
    fileLocation string
    err os.Error
}

func (self *location) getKey(ver uint) string {...}

func (self *location) getData() string {...}

func NewReader(fileLocation string) *location {
    _location := new(location)
    _location.fileLocation = fileLocation
    return _location
}

Ответы [ 2 ]

4 голосов
/ 16 мая 2010

В Go вам не нужно явно указывать, что вы реализуете интерфейс - если тип имеет все, что требуется для интерфейса, его можно использовать через этот интерфейс. Так что вам не нужно говорить reader внутри type location struct.

Смотрите здесь: http://golang.org/doc/effective_go.html#interfaces_and_types

1 голос
/ 16 мая 2010

Вы в основном уже сделали это. Как только вы дадите правильные тела методов getKey и getData для location, * location будет реализовывать интерфейс читателя. Больше не нужно ничего делать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...