Подстановки Лисков Liskov Substitution Principle - LSP Объекты в программе должны быть заменяемыми на экземпляры их подтипов без изменения правильности выполнения программы. В классических ООП языках подкласс наследует функциональность родителей. В Go вместо наследования используется композиция. Структура может использовать функциональность встроенной родительской структуры, однако тип родителя или какая-либо иерархия отсутствует. То есть мы не можем просто так подставить одну структуру вместо другой. Данный принцип для Go не выполняется! Все же можно натянуть сову на глобус и сказать, что принцип подстановки Лисков применим через использование интерфейсов. В контексте Go, разные структуры, реализующие один и тот же интерфейс, могут быть использованы взаимозаменяемо. Представим, что есть интерфейс Shape с методом Area() и возвращает площадь фигуры. Определим разные структуры, такие как Circle и Rectangle, реализующие этот интерфейс. Функция, которая вычисляет и выводит площадь, может и