Я хочу расширить класс Array, чтобы он мог знать, будет ли он отсортирован (по возрастанию) или нет. Я хочу добавить вычисляемое свойство isSorted
. Как можно сопоставить элементы массива?
Моя текущая реализация в Playground
extension Array {
var isSorted: Bool {
for i in 1..self.count {
if self[i-1] > self[i] { return false }
}
return true
}
}
// The way I want to get the computed property
[1, 1, 2, 3, 4, 5, 6, 7, 8].isSorted //= true
[2, 1, 3, 8, 5, 6, 7, 4, 8].isSorted //= false
Ошибка Could not find an overload for '>' that accepts the supplied arguments
Конечно, у меня все еще есть ошибка, потому что Swift не знает, как сравнивать элементы. Как реализовать это расширение в Swift? Или я здесь что-то не так?