+38/050/370-3627
+38/093/220-0872
+38/044/257-2444
Новини

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.

Реалізація Swift побудована із задіянням технологій вільного проекту LLVM. Для забезпечення високої продуктивності Swift-програми компілюються в машинний код, що виконується в тестах Apple на 30% швидше за код на Objective-C. Замість збирача сміття в Swift використовуються засоби підрахунку посилань на об'єкти. У поставку входить пакетний менеджер Swift Package Manager, що надає засоби для розповсюдження модулів та пакетів з бібліотеками та програмами на мові Swift, управління залежностями, автоматизованого завантаження, складання та зв'язування компонентів.

 

Інші новини

Найкраща ціна