Найти в Дзене

Использование интерфейсов в Golang

Для использования интерфейсов, надо создать тип интерфейса: В Golang для интерфейсов принято добавлять окончание "er"(Tester, Modeler, Marshaler и т.п.) Интерфейс будет назначаться автоматически всем структурам у которых есть методы указанные в нем. В данном примере структура Test будет определена интересом Tester, так как имеет такие же методы. В дальнейшем интерфейс можно использовать как определение типа передаваемого в методы. Теперь можно создать разные структуры и использовать их с помощью интерфейса в нужных вам методах. Пример применения. Например вы создали свой тип данных и хотите записывать его в JSON и читать от туда же. Для этого используются два интерфейса Unmarshaler (UnmarshalJSON([]byte) error) и Marshaler(MarshalJSON() ([]byte, error))

Для использования интерфейсов, надо создать тип интерфейса:

В Golang для интерфейсов принято добавлять окончание "er"(Tester, Modeler, Marshaler и т.п.)

Интерфейс будет назначаться автоматически всем структурам у которых есть методы указанные в нем.

В данном примере структура Test будет определена интересом Tester, так как имеет такие же методы.

В дальнейшем интерфейс можно использовать как определение типа передаваемого в методы.

Теперь можно создать разные структуры и использовать их с помощью интерфейса в нужных вам методах.

Пример применения. Например вы создали свой тип данных и хотите записывать его в JSON и читать от туда же. Для этого используются два интерфейса Unmarshaler (UnmarshalJSON([]byte) error) и Marshaler(MarshalJSON() ([]byte, error))