GO_INTERVIEW_LIB Telegram 564
💬 В Go существует возможность скрывать методы с помощью встраивания структур. Как можно сделать так, чтобы метод, реализующий интерфейс, был скрыт при приведении типа, даже если он присутствует у встраиваемой структуры?

Например, есть тип A, который имеет метод Hello(). Когда мы передаём экземпляр A в функцию Greet(), приведение успешно выполнится к интерфейсу Greeter, и будет вызван метод Hello().

Теперь, допустим, мы хотим использовать тип A, но не хотим, чтобы его метод Hello() был доступен. Мы можем скрыть его с помощью embedding.

Когда мы вызываем Greet(ANoHello{A: A{}}), приведение типа к интерфейсу не удаётся.

Хотя ANoHello встраивает тип A, который имеет корректный метод Hello(), приоритет получает неэкспортируемый тип noHello, который скрывает метод Hello().
🤔8👍31😁1



tgoop.com/go_interview_lib/564
Create:
Last Update:

💬 В Go существует возможность скрывать методы с помощью встраивания структур. Как можно сделать так, чтобы метод, реализующий интерфейс, был скрыт при приведении типа, даже если он присутствует у встраиваемой структуры?

Например, есть тип A, который имеет метод Hello(). Когда мы передаём экземпляр A в функцию Greet(), приведение успешно выполнится к интерфейсу Greeter, и будет вызван метод Hello().

Теперь, допустим, мы хотим использовать тип A, но не хотим, чтобы его метод Hello() был доступен. Мы можем скрыть его с помощью embedding.

Когда мы вызываем Greet(ANoHello{A: A{}}), приведение типа к интерфейсу не удаётся.

Хотя ANoHello встраивает тип A, который имеет корректный метод Hello(), приоритет получает неэкспортируемый тип noHello, который скрывает метод Hello().

BY Библиотека Go для собеса | вопросы с собеседований





Share with your friend now:
tgoop.com/go_interview_lib/564

View MORE
Open in Telegram


Telegram News

Date: |

4How to customize a Telegram channel? How to Create a Private or Public Channel on Telegram? The initiatives announced by Perekopsky include monitoring the content in groups. According to the executive, posts identified as lacking context or as containing false information will be flagged as a potential source of disinformation. The content is then forwarded to Telegram's fact-checking channels for analysis and subsequent publication of verified information. Matt Hussey, editorial director of NEAR Protocol (and former editor-in-chief of Decrypt) responded to the news of the Telegram group with “#meIRL.” Step-by-step tutorial on desktop:
from us


Telegram Библиотека Go для собеса | вопросы с собеседований
FROM American