Swift: расширить сопоставимость массивов

domc спросил: 07 октября 2018 в 10:21 в: arrays

В swift 4 массива автоматически сопоставимы, но они проверяют каждый элемент последовательно. Соответствует ли элемент 1 элементу 1, элемент 2 - элементу 2 и т. Д.? - это, вероятно, хорошее стандартное поведение.

Но я бы хотел расширить / изменить это поведение для определенного типа Interval, поэтому не имеет значения, каков порядок элементов, если только содержимое двух массивов совпадает. то есть, если оба массива отсортированы и совпадают (используя исходное поведение), это должно привести к сравнимому.

Проблема в том, что, определяя мое новое поведение, я "переопределяю" и теряю существующее поведение (которое я В идеале я хотел бы сохранить, чтобы я мог проверить, как только оба массива будут отсортированы) - и поэтому я получаю предупреждение "Все пути через эту функцию будут вызываться сами". Любые идеи, как решить, пожалуйста,

extension Array where Element == Interval {
    static func == (lhs: [Interval], rhs: [Interval]) -> Bool {
        return lhs.sorted() == rhs.sorted()
    }
}

0 ответов