diff --git a/sort/sort.go b/sort/sort.go index a8b0b04..58a9046 100644 --- a/sort/sort.go +++ b/sort/sort.go @@ -1,6 +1,7 @@ package sort import ( + "fmt" "sort" "strings" ) @@ -59,6 +60,12 @@ func (s *mapSorter[T]) Values() []T { return ret } +func (s *mapSorter[T]) String() string { + return fmt.Sprintf("map[%s]", s.Join(" ", func(k string, v T) string { + return fmt.Sprintf("%s:%v", k, v) + })) +} + func keys[T any](m map[string]T) []string { keys := make([]string, 0, len(m)) for k := range m { diff --git a/sort/sort_test.go b/sort/sort_test.go index 133f316..f5ceeae 100644 --- a/sort/sort_test.go +++ b/sort/sort_test.go @@ -23,6 +23,8 @@ func TestMapSortInt(t *testing.T) { } ret := SortByKey(m).Desc().Values() + t.Log(SortByKey(m).Desc()) + t.Log(SortByKey(m).Asc()) t.Log(ret) } @@ -33,6 +35,7 @@ func TestJoin(t *testing.T) { "Abc": "abc", "Efg": "efg", } + t.Log(m) j := SortByKey(m).Asc().Join("&", func(k string, v any) string { return fmt.Sprintf("%s=%v", k, v)