fmt.Errorf("%w и %w", err1, err2) (Go 1.20+)?Начиная с Go 1.20, в одном вызове fmt.Errorf можно использовать несколько глаголов %w. Ошибка-результат оборачивает все переданные ошибки и реализует interface{ Unwrap() []error }.
err := fmt.Errorf("ошибки: %w и %w", err1, err2)
// errors.Is(err, err1) и errors.Is(err, err2) - true
// errors.Unwrap(err) возвращает nil; для списка - errors.Join или разбор через errors.Unwrap
При параллельной работе (несколько горутин) часто нужно собрать несколько ошибок в одну. errors.Join(err1, err2) и многократный %w в fmt.Errorf позволяют строить такую цепочку и проверять её через errors.Is / errors.As.