Как добавить свои методы для пакета?
В Go нельзя напрямую добавить новые методы к уже существующему типу из другого пакета, поэтому создают новый тип-обёртку и определяют методы для него. Часто для этого используют встраивание (embedding) исходного типа в новый. Тогда новый метод работает с данными исходного типа через встроенное поле.
В Golang нет возможности добавить методы к существующему типу извне, поэтому обычно создают новый тип (структуру), который включает в себя как поле существующего типа и определяют методы для этого нового типа. Например, если мы хотим добавить метод Display() к уже существующему типу Point, то мы создаём обёртку — структуру NewPoint с встраиваемым полем типа Point и определяем метод Display() уже для NewPoint.
Таким образом, метод Display() становится методом типа NewPoint, который встраивает в себя тип Point. При вызове этого метода для переменной типа NewPoint он обращается к полям встроенного Point (через механизм встраивания), как если бы они были полями самого NewPoint.
Отметьте свой прогресс