Использование New и As в обработке ошибок в Golang отличается следующим образом:
- Функция New создаёт ошибку, принимая в качестве параметра текстовое сообщение. 23 Каждый вызов New возвращает отдельное значение ошибки, даже если текст идентичен. 3
- Функция As проверяет, относится ли ошибка к конкретному типу. 24 Она находит первую ошибку в цепочке, которая соответствует указанному типу, и если находит, то устанавливает второй аргумент равным этому значению ошибки и возвращает true. 3 В противном случае возвращается false. 3
Таким образом, New создаёт ошибки, а As проверяет, относится ли ошибка к определённому типу, упрощая работу с упакованными ошибками, позволяя проверить каждую из них за один вызов. 2