errors.Is проверяет, есть ли в цепочке обёрнутых ошибок конкретная ошибка (по значению). Например, errors.Is(err, sql.ErrNoRows) пройдёт по всей цепочке Unwrap и найдёт sql.ErrNoRows, даже если она обёрнута в три слоя. errors.As делает то же самое, но по типу — находит ошибку нужного типа и записывает её в переменную. Это как type assertion, но для вложенных ошибок. До Go 1.13 приходилось вручную разворачивать цепочки, а сейчас всё из коробки.
Как работает errors.Is и errors.As?
Middle
979 просмотровAFK Offer AI
Что такое уровни изоляции?