@darknefrit

Зачем пользовательский тип в go?

В книге Effective Go есть пример

type ByteSlice []byte

func (slice ByteSlice) Append(data []byte) []byte {
// Body exactly the same as the Append function defined above.
}
Зачем обявлять свой тип "ByteSlice", можно же просто написать func (slice []byte) ....??
  • Вопрос задан
  • 430 просмотров
Пригласить эксперта
Ответы на вопрос 3
astec
@astec
Разработчик https://debtstracker.io/
Классический пример с площадью фигуры.

Представьте что у вас есть классы Круг, Квадрат, прямоугольник, треугольник. Каждый вычисляет площадь по своей собственной формуле.

Напишите метода куда передается список фигур и надо посчитать их общую площадь?

С интерфейсом Areaer и методом типов «Area() float» это элементарно.

С отдельными методами надо огромный switch и знать заранее о всех возможных фигурах.

А теперь представьте себе что пришло новое требование что фигуры с координатами и надо вычислить пересекающуюся область? С методом типа это делается довольно тривиально цепочкой вызовов одного и того же метода на списке фигур.

Короче говоря чтобы писать меньше кода.
Ответ написан
Комментировать
Sanasol
@Sanasol
нельзя просто так взять и загуглить ошибку
это же типа ООП.
Классы и всё такое.

Всё на классах.

Зачем делать без класса если модно сделать свой класс?)
Ответ написан
index0h
@index0h
PHP, Golang. https://github.com/index0h
Если тип посложнее, например такой map[string][]my_package.MyStructure
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы