Go 1.13 вводит новые функции для ошибок, чтобы упростить работу с ошибками. Перед Go 1.13 я проверил свой код на наличие ошибки следующим образом:
if err == nil {
// ...
}
Но Go's errors.Is()
помогает мне сделать это правильно:
Это разумный способЗащита вашего кода в будущем и предотвращение проблем, вызванных вами - или любыми пакетами, которые импортирует ваш код - оборачивая ошибки в будущем.
И это нормально для таких ситуаций:
if errors.Is(err, sql.ErrNoRows) {
// ...
}
Означает ли это, что я должен изменить все свои err == nil
заявления на:
if errors.Is(err, nil) {
// ...
}