Можно ли наследовать методы типа без использования встроенных структур?
Обсуждение вращается вокруг концепции использования встроенных структур для получения доступа к методам другой тип. Автор отмечает, что внедрение структуры вынуждает их инициализировать встроенную структуру при инициализации содержащей структуры, что они считают громоздким. Они предоставляют примеры кода, чтобы продемонстрировать проблему, и выражают желание избежать явной инициализации встроенной структуры.
В ответе рассматривается техническое ограничение, предотвращающее наследование без встроенных структур. В нем объясняется, что перевод методов из одного типа в другой возможен только посредством встраивания. В качестве авторитетного источника упоминается спецификация Go, утверждающая, что набор методов структуры включает только методы, объявленные с этой структурой в качестве типа получателя.
Затем ответ углубляется в концепцию расширенных полей, которые представляют собой поля анонимных встроенных структур, доступ к которым можно получить непосредственно через содержащую структуру. Однако расширенные поля нельзя использовать в составных литералах, поэтому требуется явная инициализация при создании структуры, содержащей встроенное анонимное поле.
В ответе признаются ограничения использования встроенных структур и отсутствие механизмов прямого наследования в Go. В нем подчеркивается, что основной причиной использования встроенных структур является продвижение методов, а не полей данных, поскольку доступ к данным можно получить посредством композиции.
Ответ юмористически завершается личным приветствием автор, Джефф, ссылается на предыдущее взаимодействие.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3