mirror of https://github.com/q191201771/naza
messages:
- [feat] package nazastring,增加SubSliceSafety函数,安全的获取切片的子切片 - [feat] package nazaerrors,增加CombineErrors函数,将多个error组合成一个pull/2/head
parent
109404ceb9
commit
82ba4581b3
@ -0,0 +1,20 @@
|
||||
// Copyright 2021, Chef. All rights reserved.
|
||||
// https://github.com/q191201771/naza
|
||||
//
|
||||
// Use of this source code is governed by a MIT-style license
|
||||
// that can be found in the License file.
|
||||
//
|
||||
// Author: Chef (191201771@qq.com)
|
||||
|
||||
package nazaerrors
|
||||
|
||||
// 将多个error合并为一个
|
||||
// 当前的策略是取第一个不为nil的error返回
|
||||
func CombineErrors(errs ...error) error {
|
||||
for _, err := range errs {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
// Copyright 2021, Chef. All rights reserved.
|
||||
// https://github.com/q191201771/naza
|
||||
//
|
||||
// Use of this source code is governed by a MIT-style license
|
||||
// that can be found in the License file.
|
||||
//
|
||||
// Author: Chef (191201771@qq.com)
|
||||
|
||||
package nazaerrors
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"io"
|
||||
"testing"
|
||||
|
||||
"github.com/q191201771/naza/pkg/assert"
|
||||
)
|
||||
|
||||
func TestCombineErrors(t *testing.T) {
|
||||
golden := []error{
|
||||
nil,
|
||||
io.EOF,
|
||||
errors.New("1"),
|
||||
}
|
||||
|
||||
var err error
|
||||
|
||||
err = CombineErrors(nil)
|
||||
assert.Equal(t, nil, err)
|
||||
|
||||
err = CombineErrors(golden[1])
|
||||
assert.Equal(t, golden[1], err)
|
||||
|
||||
err = CombineErrors(golden[2])
|
||||
assert.Equal(t, golden[2], err)
|
||||
|
||||
err = CombineErrors(nil, golden[1])
|
||||
assert.Equal(t, golden[1], err)
|
||||
|
||||
err = CombineErrors(nil, golden[2])
|
||||
assert.Equal(t, golden[2], err)
|
||||
|
||||
err = CombineErrors(golden[1], nil)
|
||||
assert.Equal(t, golden[1], err)
|
||||
|
||||
err = CombineErrors(nil, golden[1], golden[2])
|
||||
assert.Equal(t, golden[1], err)
|
||||
|
||||
err = CombineErrors(golden[1], nil, golden[2])
|
||||
assert.Equal(t, golden[1], err)
|
||||
|
||||
err = CombineErrors(golden[1], golden[2], nil)
|
||||
assert.Equal(t, golden[1], err)
|
||||
}
|
Loading…
Reference in New Issue