errors.Is проверяет, есть ли в цепочке конкретная ошибка (по значению): errors.Is(err, ErrNotFound) — true если err это ErrNotFound или оборачивает его. errors.As проверяет по типу и извлекает: var ve *ValidationError; errors.As(err, &ve) — true если в цепочке есть *ValidationError, и заполняет ve. Is — для sentinel errors (значение). As — для typed errors (тип + данные). Оба ходят по цепочке Unwrap. Не используй == для сравнения ошибок — используй Is.
errors.Is vs errors.As?
Middle
399 просмотровAFK Offer AI
Что такое алерты и как их настроить?