Я построил собственный класс, который содержит «внутренний» массив и предлагает некоторые полезные методы.Как отсортировать типизированный массив в swift?
class ArrayList<T> {
private var array : Array<T>
public init() {
array = Array<T>()
}
public func add(element : T) {
array.append(element)
}
public func size() -> Int {
return array.count
}
...
}
Хорошо, это прекрасно работает для меня до сих пор.
Но теперь я также хочу иметь способ сортировки массива. То, что у меня уже есть, заключается в следующем:
public func sort(comparator : ?) {
array = array.sort(comparator)
}
Вопросительный знак обозначает тип параметра, и это моя проблема: Какой тип должен иметь параметр? Я кое-что прочитал о @noescape < ,> но я не могу заставить его работать!
Я использую Swift 2.2.
Почему вы ограничиваете T сопоставимым, вы запрещаете несопоставимые элементы только потому, что их нельзя сортировать ed с '<' and'>'? Во всяком случае, вы можете добавить расширение, которое применяется только тогда, когда T сопоставимо, что предлагает функцию сортировки по умолчанию. – overactor
Я знаю, что я просто хотел просто ответить на вопрос и избежать того, что * Binary Operator <не может применяться к ... * сообщению об ошибке. – vadian
это будет работать нормально без ограничения, а также T сравнимо. И если это не так, вы не должны ожидать, что сможете сравнить его с помощью '<', и вы все равно можете сравнить его каким-то другим способом. – overactor