Source File
errors.go
Belonging Package
fmt
// Copyright 2018 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package fmt
import
// Errorf formats according to a format specifier and returns the string as a
// value that satisfies error.
//
// If the format specifier includes a %w verb with an error operand,
// the returned error will implement an Unwrap method returning the operand. It is
// invalid to include more than one %w verb or to supply it with an operand
// that does not implement the error interface. The %w verb is otherwise
// a synonym for %v.
func ( string, ...interface{}) error {
:= newPrinter()
.wrapErrs = true
.doPrintf(, )
:= string(.buf)
var error
if .wrappedErr == nil {
= errors.New()
} else {
= &wrapError{, .wrappedErr}
}
.free()
return
}
type wrapError struct {
msg string
err error
}
func ( *wrapError) () string {
return .msg
}
func ( *wrapError) () error {
return .err
}