fmt.Errorf 中的多个 %w

版本新特性 / Go 1.20

// *** before: ***
err := fmt.Errorf("save failed: %v and %v", errDisk, errNetwork)
// both errors show up in the text only, errors.Is will not find them

// *** in version 1.20: ***
err := fmt.Errorf("save failed: %w and %w", errDisk, errNetwork)
fmt.Println(errors.Is(err, errDisk))    // true
fmt.Println(errors.Is(err, errNetwork)) // true