Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Компания Apple выпустила язык программирования Swift 4.1

Компания Apple опубликовала релиз языка программирования Swift 4.1. Официальные сборки подготовлены для Linux (Ubuntu 14.04, 16.04, 16.10) и macOS (Xcode). Исходные тексты распространяются под лицензией Apache 2.0.

В новой версии компилятора представлен новый режим оптимизации "-Osize", позволяющий на 5-30% сократить размер результирующего кода, ценой небольшого снижения производительности. В набор для настройки процесса сборки добавлены функции для проверки возможности импорта определённых модулей (например "#if canImport(UIKit)...") и определения выбранной целевой платформы (например, "#if targetEnvironment(simulator)..."). В пакетном менеджере обеспечено корректное разрешение зависимостей при использовании различных URL-схем (например, ssh и http). Существенно увеличена производительность обработки графов пакетов, содержащих общие зависимости.

В языке продолжена реализация идей связанных с поддержкой обобщений (generic). Например, добавлена поддержка условных соответствий, при которых типы Optional, Array и Dictionary, в которых хранятся другие типы, могут использоваться в операциях, требующих соответствия протоколам Equatable и Hashable. Например, 'let a = ["1","2","x"].map(Int.init); a == [1,2,nil]'; Из новых возможностей языка также отмечается возможность определения ограничений для ассоциированных типов с рекурсивными ссылками на определяемый протокол, синтез соответствия типов протоколам Equatable и Hashable, реализация метода "Sequence.compactMap(_:)", приведение индексируемых типов стандартной библиотеки к соответствию протоколу Hashable, исключение ассоциированного типа IndexDistance из протокола Collection. В классы JSONEncoder и JSONDecoder добавлено свойство для определения стратегии преобразования ключей в процессе кодирования или декодирования.

Напомним, что язык Swift наследует лучшие элементы языков C и Objective-C, и предоставляет объектную модель, совместимую с Objective-C (Swift-код может смешиваться с кодом на С и Objective-C), но отличается использованием средств автоматического распределения памяти и контроля переполнения переменных и массивов, что значительно увеличивает надёжность и безопасность кода. Swift также предлагает множество современных методов программирования, таких как замыкания, обобщенное программирование, лямбда-выражения, кортежи и словарные типы, быстрые операции над коллекциями, элементы функционального программирования. Версия для Linux не привязана к Objective-C Runtime, что позволяет использовать язык в окружениях, в которых отсутствует поддержка Objective-C.

Pеализация Swift построена с задействованием технологий свободного проекта LLVM. Для обеспечения высокой производительности Swift-программы компилируются в машинный код, выполняемый в тестах Apple на 30% быстрее кода на Objective-C. Вместо сборщика мусора в Swift используются средства подсчёта ссылок на объекты. В поставку входит пакетный менеджер Swift Package Manager, предоставляющий средства для распространения модулей и пакетов с библиотеками и приложениями на языке Swift, управления зависимостями, автоматизированной загрузки, сборки и связывания компонентов.

OpenNET

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...