Я не очень часто использовал игровые площадки со Swift. В основном я использую его в проектах, поэтому я немного теряюсь в работе с игровыми площадками.
У меня есть этот тестовый код на небольшой игровой площадке:
let array = [7, 3, 4, 9, 2, 12, 5]
let firstSorted = array.sorted(<)
let secondSorted = sorted(array, <)
let thirdSorted = array.sorted { $0 < $1 }
Выходные данные, показанные справа, показывают выходные данные отсортированного массива рядом с firstSorted и secondSorted. Однако вывод рядом с ThirdSorted просто говорит (15 раз).
Почему? И как мне увидеть вывод, не добавляя отдельную команду println для регистрации вывода?
Третья форма имеет завершающее замыкание с параметрами, определяемыми их позициями.
Два других — еще более короткая форма, в которой используется только оператор сравнения, который совпадает с сигнатурой необходимого замыкания.
Еще вопрос: (на этот раз о языке, а не о площадках) Почему работают обе формы sorted(array, <)
и array.sorted(<)
? Первая — это глобальная функция, которая принимает 2 параметра, а вторая форма — это метод класса Array.