Я не могу понять идею, лежащую в основе объяснения оператора Array.max (by:) .
Рассмотрим следующую строку кода:
print([10, 2, 5, 1, 3].max { $0 > $1 })
Я бы предположил, что ожидаемый вывод должен быть 10, но на самом деле вывод равен 1. Теперь я прочитал в документации, чтоединственный аргумент этой функции, areInIncreasingOrder , сам являющийся функцией, определяется как:
A predicate that returns true if its first argument should be ordered before its second argument; otherwise, false.
Я просто не могу понять это утверждение.Почему размещение соседнего элемента влияет на результат функции?
Примечание : В примере с реальным миром массив будет состоять из элементов не примитивного типа, где необходимоДля примера сравните даты двух объектов.Я понимаю, что если бы вышеупомянутый простой пример был решен, можно было бы просто сделать это с помощью оператора Array.max () по умолчанию.