Рассмотрим следующие родительские и дочерние структуры:
type Parent struct { id string children []Child } type Child struct { id string }
Предположим, у нас есть фрагмент родительских структур с предопределенными значениями:
parents := []Parent{ { "3", []Child{ {"2"}, {"3"}, {"1"}, }, }, { "1", []Child{ {"8"}, {"9"}, {"7"}, }, }, { "2", []Child{ {"5"}, {"6"}, {"4"}, }, }, }
Требования к сортировке:
Наша цель — отсортировать родительский срез по двум критериям:
Решение:
Чтобы добиться такой сортировки, мы используем функцию sort.Slice, которая обеспечивает гибкий способ сортировки срезов на основе пользовательских функций сравнения. Вот код:
// Sort parents by their ID
sort.Slice(parents, func(i, j int) bool { return parents[i].id Этот алгоритм сортировки эффективно обрабатывает оба критерия, обеспечивая желаемый порядок родительского среза.
Ожидаемый результат:
Отсортированный срез должен напоминают следующую структуру:
[{1 [{7} {8} {9}]} {2 [{4} {5} {6}]} {3 [{1} {2} {3}]}]
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3