В моем проекте у меня много коллекций (срезов) разных типов данных.Любая конкретная коллекция должна определять поля, по которым она может сортироваться.Я хочу написать одну функцию сортировки и вызывать ее с пользовательским вводом (поле сортировки и порядок) всякий раз, когда коллекция должна быть отсортирована.Я придумал следующий шаблонный код (описал только один тип коллекции, но для других он будет таким же): https://gist.github.com/abonec/f1ee23a38e78ea48d470c39885de47ba
У меня есть интерфейс Sortable
для коллекций.Сортируемый должен быть передан в sortStats
с пользовательским вводом поля сортировки.Если конкретная реализация поддерживает этот тип сортировки, она должна вернуть sort.Interface
с соответствующим интерфейсом.
Проблема со многими повторными реализациями sort.Interface
, где Len()
и Swap()
метод идентичны.Отличается только Less()
.
Есть ли какой-либо подход к избавлению от методов Len()
и Swap()
в этом случае или может быть другой подход к написанию универсальной функции сортировки с полем динамической сортировки?