The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено opennews, 30-Мрт-18 09:20 
Компания Apple опубликовала (https://swift.org/blog/swift-4-1-released/) релиз языка программирования Swift 4.1 (https://swift.org). Официальные сборки подготовлены (https://swift.org/download/#releases) для Linux (Ubuntu 14.04, 16.04, 16.10) и macOS (Xcode). Исходные тексты распространяются (https://github.com/apple/swift) под лицензией Apache 2.0.

В новой версии компилятора представлен (https://swift.org/blog/osize/) новый режим оптимизации "-Osize", позволяющий на 5-30% сократить размера результирующего кода, ценой небольшого снижения производительности. В набор для настройки процесса сборки добавлены (https://github.com/apple/swift-evolution/blob/master/proposa...) функции для проверки возможности импорта определённых модулей (например "#if canImport(UIKit)...") и определения выбранной целевой платформы (например, "#if  targetEnvironment(simulator)..."). В пакетном менеджере обеспечено корректное разрешение зависимостей при использовании различных URL-схем (например, ssh и http). Существенно увеличена производительность обработки графов пакетов, содержащих общие зависимости.


В языке продолжена реализация идей связанных с поддержкой
обобщений (https://github.com/apple/swift/blob/master/docs/GenericsMani...) (generic). Например, добавлена поддержка условных соответствий (https://swift.org/blog/conditional-conformance/), при которых типы Optional, Array и Dictionary, в которых хранятся другие типы, могут использоваться в операциях, требующих соответствия протоколам Equatable и Hashable. Например, 'let a = ["1","2","x"].map(Int.init); a == [1,2,nil]'; Из новых возможностей языка также отмечается возможность (https://github.com/apple/swift-evolution/blob/master/proposa...) определения ограничений для ассоциированных типов с рекурсивными ссылками на определяемый протокол, синтез (https://github.com/apple/swift-evolution/blob/master/proposa...) соответствия типов протоколам Equatable и Hashable, реализация (https://github.com/apple/swift-evolution/blob/master/proposa...)  метода "Sequence.compactMap(_:)", приведение (https://github.com/apple/swift-evolution/blob/master/proposa...) индексируемых типов стандартной библиотеки к соответствию протоколу Hashable, исключение (https://github.com/apple/swift-evolution/blob/master/proposa...) ассоциированного типа IndexDistance из протокола  Collection. В классы
JSONEncoder и JSONDecoder добавлено (https://forums.swift.org/t/jsonencoder-key-strategies/6958) свойство для определения стратегии преобразования ключей в процессе кодирования или декодирования.

Напомним, что язык 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 (https://swift.org/package-manager/), предоставляющий средства для распространения модулей и пакетов с библиотеками и приложениями на языке Swift, управления зависимостями, автоматизированной загрузки, сборки и связывания компонентов.


URL: https://swift.org/blog/swift-4-1-released/
Новость: https://www.opennet.ru/opennews/art.shtml?num=48358

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру