Утверждение типа — это механизм, который извлекает из переменной интерфейса настоящее конкретное значение. Он позволяет получить доступ к фактическому типу, хранящемуся внутри интерфейса.
Стандартный синтаксис для утверждения типа выглядит так:
value, ok := x.(string)
Где:
x — переменная интерфейсаstring — целевой тип, который ты утверждаешьvalue — извлечённое базовое значениеok — булев флаг, указывающий, успешно ли прошло утверждениеКогда ты присваиваешь конкретный тип переменной интерфейса, фактическое значение обёрнуто внутри интерфейса. Утверждение типа разворачивает это значение, чтобы ты мог использовать его с его исходным типом и методами.
Безопасное утверждение (рекомендуется): возвращает и значение, и булев статус
value, ok := interfaceVar.(TargetType)
if !ok {
// Обработка несовпадения типов
}
Небезопасное утверждение: возвращает только значение; вызывает панику, если тип не совпадает
value := interfaceVar.(TargetType)
interface{}) или типами интерфейсов с несколькими реализациямиok указывает, совпадает ли базовый тип с тем, что ты утверждаешьType assertion в Go позволяет тебе распаковать и получить доступ к конкретному значению, хранящемуся в переменной интерфейса во время выполнения программы.
Новый — ещё не проверен сообществом
Вы