Практический подход к Swift

Представьте себе, что вы пытаетесь организовать операцию «взлетно-посадочная полоса-взлетно-посадочная полоса», которая представляет собой двусторонний маршрут с одним рейсом. Это означает, что вы можете совершить только один полет в воздухе между взлетно-посадочными полосами!

Примером может служить маршрут Кегата-Апово (Папуа, Индонезия), длина которого составляет всего 2 км! Видео можно найти здесь https://vimeo.com/indopilot. Изображение ниже взято с того же веб-сайта, на котором хранятся приключения пилота Pilatus PC-6 Turbo Porter английского происхождения.

В этом посте я демонстрирую простой алгоритм, который станет полезным решением представленной проблемы. Он реализован на Swift. Я начну с краткого введения основных понятий языка.

Демонстрация базовой быстрой функциональности, а именно обобщений, т. е. Type <T>, функций высокого порядка с использованием замыканий (функций, которые принимают функции в качестве аргументов), т. е. func functionA(argument: functionB), например, func takeoff((altitude: Float) ->(pressure: Float)), и использование структур передачи по значению с малым объемом памяти вместо использования классов (которые тяжело , и переносить ссылки, что делает их уязвимыми к утечкам памяти).

Структуры предпочтительнее, если они относительно малы и могут быть скопированы, потому что копирование намного безопаснее, чем наличие нескольких ссылок на один и тот же экземпляр, как в случае с классами. Структуры также предоставляют средства для выполнения одной из самых красивых вещей в Swift на сегодняшний день: протокольно-ориентированного программирования (POP)! Мой следующий пост будет посвящен тому, как и/или когда ПОП превзойдет объектно-ориентированное программирование (ООП)!

Здесь преимущество использования замыканий заключается в том, что, как и в операции сетевого запроса, мы не знаем, когда будет завершен каждый процесс, и мы можем взяться за следующий процесс только после завершения предыдущего. Закрытие onComplete позволяет нам вылететь следующим рейсом (из любого аэропорта) после приземления предыдущего. Наслаждайтесь простой автоматизированной программой аэропорта ниже!

Вывод программы выглядит следующим образом. Виола!