При type assertion v.(T) runtime сравнивает тип, хранящийся в интерфейсной переменной, с целевым типом T. Если T — конкретный тип, сравнение по указателю на type metadata (очень быстро). Если T — интерфейс, нужно проверить наличие всех методов (через itab lookup). Форма v.(T) с двумя возвратами (val, ok) не паникует — просто возвращает false.
Как работает type assertion под капотом?
Middle+
199 просмотровAFK Offer AI
Что такое double-checked locking?