Source File
join.go
Belonging Package
errors
// Copyright 2022 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 errorsimport ()// Join returns an error that wraps the given errors.// Any nil error values are discarded.// Join returns nil if every value in errs is nil.// The error formats as the concatenation of the strings obtained// by calling the Error method of each element of errs, with a newline// between each string.//// A non-nil error returned by Join implements the Unwrap() []error method.func ( ...error) error {:= 0for , := range {if != nil {++}}if == 0 {return nil}:= &joinError{errs: make([]error, 0, ),}for , := range {if != nil {.errs = append(.errs, )}}return}type joinError struct {errs []error}func ( *joinError) () string {// Since Join returns nil if every value in errs is nil,// e.errs cannot be empty.if len(.errs) == 1 {return .errs[0].Error()}:= []byte(.errs[0].Error())for , := range .errs[1:] {= append(, '\n')= append(, .Error()...)}// At this point, b has at least one byte '\n'.return unsafe.String(&[0], len())}func ( *joinError) () []error {return .errs}
The pages are generated with Golds v0.7.6. (GOOS=linux GOARCH=amd64)