diff --git a/mapx/map.go b/mapx/map.go index 83e2054..78e838f 100644 --- a/mapx/map.go +++ b/mapx/map.go @@ -60,13 +60,13 @@ func KeysValues[K comparable, V any](m map[K]V) ([]K, []V) { // 如果keys和values的长度为0,则会返回一个空map func ToMap[K comparable, V any](keys []K, values []V) (m map[K]V, err error) { if keys == nil || values == nil { - return nil, fmt.Errorf("keys与values中有至少一个nil") + return nil, fmt.Errorf("keys与values均不可为nil") } n := len(keys) if n != len(values) { - return nil, fmt.Errorf("keys与values长度不相同") + return nil, fmt.Errorf("keys与values的长度不同, len(keys)=%d, len(values)=%d", n, len(values)) } - m = make(map[K]V) + m = make(map[K]V, n) for i := 0; i < n; i++ { m[keys[i]] = values[i] } diff --git a/mapx/map_test.go b/mapx/map_test.go index 133c65c..0d84701 100644 --- a/mapx/map_test.go +++ b/mapx/map_test.go @@ -172,25 +172,25 @@ func TestToMap(t *testing.T) { keys: []int{1, 2, 3}, values: []string{"1", "2"}, result: nil, - err: fmt.Errorf("keys与values长度不相同"), + err: fmt.Errorf("keys与values的长度不同, len(keys)=3, len(values)=2"), }, { keys: []int{1, 2, 3}, values: nil, result: nil, - err: fmt.Errorf("keys与values中有至少一个nil"), + err: fmt.Errorf("keys与values均不可为nil"), }, { keys: nil, values: []string{"1", "2"}, result: nil, - err: fmt.Errorf("keys与values中有至少一个nil"), + err: fmt.Errorf("keys与values均不可为nil"), }, { keys: nil, values: nil, result: nil, - err: fmt.Errorf("keys与values中有至少一个nil"), + err: fmt.Errorf("keys与values均不可为nil"), }, { keys: []int{1, 2, 3, 1, 1}, diff --git a/tuple/pair/pair.go b/tuple/pair/pair.go index d8df512..b692d54 100644 --- a/tuple/pair/pair.go +++ b/tuple/pair/pair.go @@ -58,11 +58,11 @@ func NewPairs[K any, V any]( values []V, ) ([]Pair[K, V], error) { if keys == nil || values == nil { - return nil, fmt.Errorf("keys and values should not be nil") + return nil, fmt.Errorf("keys与values均不可为nil") } n := len(keys) if n != len(values) { - return nil, fmt.Errorf("length is different between keys and values, len(keys)=%d, len(values)=%d", n, len(values)) + return nil, fmt.Errorf("keys与values的长度不同, len(keys)=%d, len(values)=%d", n, len(values)) } pairs := make([]Pair[K, V], n) for i := 0; i < n; i++ { diff --git a/tuple/pair/pair_test.go b/tuple/pair/pair_test.go index 174e2ca..a347261 100644 --- a/tuple/pair/pair_test.go +++ b/tuple/pair/pair_test.go @@ -66,25 +66,25 @@ func (s *testPairSuite) TestNewPairs() { keys: nil, values: []string{"1"}, pairs: nil, - err: fmt.Errorf("keys and values should not be nil"), + err: fmt.Errorf("keys与values均不可为nil"), }, { keys: []int{1}, values: nil, pairs: nil, - err: fmt.Errorf("keys and values should not be nil"), + err: fmt.Errorf("keys与values均不可为nil"), }, { keys: nil, values: nil, pairs: nil, - err: fmt.Errorf("keys and values should not be nil"), + err: fmt.Errorf("keys与values均不可为nil"), }, { keys: []int{1, 2}, values: []string{"1"}, pairs: nil, - err: fmt.Errorf("length is different between keys and values, len(keys)=2, len(values)=1"), + err: fmt.Errorf("keys与values的长度不同, len(keys)=2, len(values)=1"), }, } { pairs, err := pair.NewPairs(c.keys, c.values)