Как работает type assertion под капотом?

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

При type assertion v.(T) runtime сравнивает тип, хранящийся в интерфейсной переменной, с целевым типом T. Если T — конкретный тип, сравнение по указателю на type metadata (очень быстро). Если T — интерфейс, нужно проверить наличие всех методов (через itab lookup). Форма v.(T) с двумя возвратами (val, ok) не паникует — просто возвращает false.

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

Что такое double-checked locking?