Как устроен type assertion на уровне runtime?

Senior
108 просмотров
AFK Offer AI

Type assertion i.(T) проверяет что itab.type в iface совпадает с типом T. Для конкретного типа — сравнение указателей на type descriptor (O(1)). Для интерфейса — проверка что тип реализует все методы (hash lookup в itab cache). Первый вызов медленный — строится itab, дальше кешируется. Comma-ok форма не паникует.

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

Как реализовать image resize на Go?