Swift (мова програмування)

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Swift (мова програмування)
Swift logo.svg
Парадигма: Багатопарадигмова (протокол-орієнтована, об'єктно-орієнтована, функційна, імперативна, блочно-структурована)
Дата появи: 2014
Творці: Кріс Латнер та Apple Inc.
Розробник: Apple Inc.
Останній реліз: 2.2 (21 березня 2016; 70 днів тому)
Система типізації: статична, сувора, вивід типів
Під впливом від: Objective-C, Rust, Haskell, Ruby, Python, C#, CLU,
Вплинула на: Rust
ОС: iOS, OS X, watchOS, Linux, tvOS
Ліцензія: Apache License (починаючи з Swift 2.2), Проприєтарна (до версії Swift 2.2)
Звичайні розширення файлів: swift
Сторінка інтернет: swift.org

Swift — багатопарадигмова компільована мова програмування, розроблена компанією Apple для того, щоб співіснувати з Objective C і бути стійкішою до помилкового коду. Swift була представлена на конференції розробників WWDC 2014[1]. Мова побудована з LLVM компілятором, включеного у Xcode 6 beta. Безкоштовний посібник мови програмування Swift доступний для завантаження у магазині iBooks[2].

Компілятор Swift побудований з використанням технологій вільного проекту LLVM. Swift успадковує найкращі елементи мов C і Objective-C, тому синтаксис звичний для знайомих з ними розробників, але водночас відрізняється використанням засобів автоматичного розподілу пам'яті і контролю переповнення змінних і масивів, що значно збільшує надійність і безпеку коду.

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

Мова також пропонує безліч сучасних методів програмування, таких як замикання, узагальнене програмування, лямбда-вирази, кортежі і словникові типи, швидкі операції над колекціями, елементи функційного програмування. Основним застосуванням Swift є розробка користувацьких застосунків для MacOS X і Apple iOS з використанням тулкіта Cocoa і Cocoa Touch. При цьому Swift надає об'єктну модель, сумісну з Objective-C. Сирцевий код мовою Swift може змішуватися з кодом на С і Objective-C в одному проекті.

Swift щільно інтегрований у власницьке середовище розробки Xcode і не може бути використаний відособлено на платформах, відмінних від OS X.

Окремо варто відзначити, що Swift від компанії Apple не варто плутати з досить давно розроблюваною скриптовою мовою Swift, націленої на багатонитеве програмування і поставленого під вільною ліцензією Apache.

Історія[ред.ред. код]

Розробку мови Swift почав Chris Lattner у співпраці із багатьма іншими програмістами. Ідеї для Swift запозичені із таких мов програмування як «Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, та багатьох інших із списку».[3] 2 червня 2014 року на Всесвітній конференції розробників вперше офіційно було представлено додаток, написаний мовою Swift.[4] Бета версія мови стала доступна для зареєстрованих розробників на сайті компанії, але в Apple не гарантували, що представлена версія буде сумісна із фінальною версією.[4]

Також було представлено безплатний посібник по використанню Swift, обсягом 500 сторінок, на сервісі IBooks.[5]

Версія Swift 1.0 була випущена 9 вересня 2014 року разом із «Gold Master»-версією Xcode 6.0 для iOS.[6] Swift 1.1 було презентовано 22 жовтня 2014 року разом із Xcode 6.1.[7] Swift 1.2 презентовано 8 квітня 2015 із Xcode 6.3.[8] Swift 2.0 презентовано на WWDC 2015. Оголошення про розробку та подальші плани Swift 3.0 відбулось 3 грудня 2015.[9]

В квітні 2016 року журналісти видання The Next Web повідомили, що Google розглядає можливість поліпшити рівень підтримки або Swift або Kotlin платформою Android[10].

Приклад коду[ред.ред. код]

// це приклад однорядкового коментаря

/* це також коментар,
   але написаний в декілька рядків */

/* багаторядкові коментарі
   /* можуть бути вкладені! */
   тому ви можете поміщати коментарі в блоки
*/

/* оголошення змінних у Swift починається із службового слова "var", після якого повинні 
бути ім'я змінної, тип змінної та початкове значення */
var explicitDouble: Double = 70

// якщо тип змінної не вказно, Swift обере його автоматично на основі початкового значення
var implicitInteger = 70
var implicitDouble = 70.0
var  = "日本"

/* оголошення константи у Swift починається із службового слова "let", після якого повинні 
бути ім'я змінної, тип змінної та початкове значення */
let numberOfBananas: Int = 10

// якщо тип константи не вказно, Swift обере його автоматично на основі початкового значення
let numberOfApples = 3
let numberOfOranges = 5

// значення змінних та констант можуть бути вставлені у рядки (змінні типу string) наступним чином
let appleSummary = "I have \(numberOfApples) apples."
let fruitSummary = "I have \(numberOfApples + numberOfOranges) pieces of fruit."

// оголошення масиву даних
var fruits = ["mango", "kiwi", "avocado"]

// приклад оператора if; функцій .isEmpty, та .count
if fruits.isEmpty {
    println("Фрукти відсутні у масиві даних.")
} else {
    println("В масиві даних є \(fruits.count) фруктів")
}

// приклад оголошення  "словника" (dictionary ) з 4 елементів, кожен із яких містить ім'я та вік
let people = ["Anna": 67, "Beto": 8, "Jack": 33, "Sam": 25]

// використовуючи можливості мови Swift, ми надрукуємо обидва значення в єдиному циклі
for (name, age) in people {
    println("\(name) is \(age) years old.")
}

// оголошення методів починється із службового слова "func" 
// тип результату описується після "->"
func sayHello(personName: String) -> String {
    let greeting = "Hello, " + personName + "!"
    return greeting
}

// як вивести в консолі словосполучення "Hello, Jane!", використовуючи вище описаний метод
println(sayHello("Jane"))

Примітки[ред.ред. код]

  1. Apple announces Swift, a new programming language for iOS. 
  2. The Swift Programming Language
  3. Lattner, Chris (June 3, 2014). Chris Lattner's Homepage. Chris Lattner. Процитовано June 3, 2014. «I started work on the Swift Programming Language in July of 2010. I implemented much of the basic language structure, with only a few people knowing of its existence. A few other (amazing) people started contributing in earnest late in 2011, and it became a major focus for the Apple Developer Tools group in July 2013 [...] drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list.» 
  4. а б Platforms State of the Union, Session 102, Apple Worldwide Developers Conference, June 2, 2014
  5. The Swift Programming Language. Apple. June 2, 2014. Процитовано June 2, 2014. 
  6. Swift Has Reached 1.0. 9 вересня, 2014. Процитовано September 10, 2014. 
  7. Xcode 6.1 Release Notes. 22 жовтня 2014. Процитовано 4 березня 2015. 
  8. Xcode 6.3 Release Notes. 8 квітня 2015. Процитовано 4 березня 2015. 
  9. http://thenextweb.com/apple/2015/12/03/apple-has-big-plans-for-swift-3-0-and-beyond-including-api-changes-and-working-with-c/
  10. Nate Swanner (7 квітня 2016). Google may be considering Swift for use on Android. The Next Web. https://www.facebook.com/thenextweb. Процитовано 11 квітня 2016. 

Див. також[ред.ред. код]

Посилання[ред.ред. код]