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 fmtimport// 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 errorif .wrappedErr == nil {= errors.New()} else {= &wrapError{, .wrappedErr}}.free()return}type wrapError struct {msg stringerr error}func ( *wrapError) () string {return .msg}func ( *wrapError) () error {return .err}