Как сортировать кастомные типы?

Junior
535 просмотров
AFK Offer AI

Самый простой способ — sort.Slice: передаёшь слайс и функцию less(i, j int) bool. Например: sort.Slice(users, func(i, j int) bool { return users[i].Age < users[j].Age }). Для стабильной сортировки — sort.SliceStable. Старый способ — реализовать интерфейс sort.Interface с методами Len, Less, Swap. С Go 1.21 ещё проще: slices.SortFunc(users, func(a, b User) int { return cmp.Compare(a.Age, b.Age) }). Для сортировки по нескольким полям — каскадные сравнения в функции less.

Следующий вопрос

Что такое custom error type?