Как работает interface dispatch?

Middle+
177 просмотров
AFK Offer AI

Когда ты вызываешь метод через интерфейс, Go использует itab — таблицу, которая связывает конкретный тип с интерфейсом. В itab хранятся указатели на методы типа, соответствующие интерфейсу. При вызове runtime берёт указатель на метод из itab и делает indirect call. Itab кэшируется — для пары (тип, интерфейс) itab создаётся один раз и переиспользуется.

Следующий вопрос

Как реализовать request/response logging?