1
0
mirror of https://github.com/duke-git/lancet.git synced 2026-02-09 23:22:28 +08:00

feat: add SortBy function for slice

This commit is contained in:
dudaodong
2022-12-02 14:53:57 +08:00
parent ec27ad4c40
commit 280ecb5cef
3 changed files with 65 additions and 3 deletions

View File

@@ -558,6 +558,36 @@ func TestSort(t *testing.T) {
assert.Equal([]string{"e", "d", "c", "b", "a"}, strings)
}
func TestSortBy(t *testing.T) {
assert := internal.NewAssert(t, "TestSortBy")
numbers := []int{1, 4, 3, 2, 5}
SortBy(numbers, func(a, b int) bool {
return a < b
})
assert.Equal([]int{1, 2, 3, 4, 5}, numbers)
type User struct {
Name string
Age uint
}
users := []User{
{Name: "a", Age: 21},
{Name: "b", Age: 15},
{Name: "c", Age: 100}}
SortBy(users, func(a, b User) bool {
return a.Age < b.Age
})
t.Logf("sort users by age: %v", users)
// output
// [{b 15} {a 21} {c 100}]
}
func TestSortByFielDesc(t *testing.T) {
assert := internal.NewAssert(t, "TestSortByFielDesc")