Swift
- För andra betydelser, se Swift (olika betydelser).
Paradigm | Multi-paradigmatiskt programspråk (Objekt-orienterat, Funktionellt, Imperativt, Strukturerat) |
---|---|
Gavs ut | 2014 |
Skapat av | Chris Lattner och Apple |
Utvecklare | Apple |
Senaste version | 5.9.2 (2023-12-11) |
Influerat av | Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, D[1] |
Plattform | macOS, iOS, watchOS, tvOS, Linux |
Licens | Öppen |
Webbplats | https://swift.org |
Swift är ett kompilerat, multi-paradigmatiskt programspråk utvecklat av Apple för programmering för iOS, macOS, Linux, tvOS, och watchOS.[2]
Historia
[redigera | redigera wikitext]Utveckling påbörjades i juli 2010 av Chris Lattner som implementerade grundläggande funktionalitet innan ett flertal programmerare bidrog till utvecklingsprocessen så tidigt som 2011. Språkets design inspirerades av "Objective-C, Rust, Haskell, Ruby, Python, C#, CLU och mycket mer". Swift blev ett stort fokus för Apple Developer Tools, avdelningen i Apple ansvarig för Xcode och andra programmeringsverktyg, i juli 2013.[3]
2 juni 2014 annonserades språket för första gången under årets World Wide Developer Conference (WWDC) och beskrevs som "Objective-C utan C".[4] Den ackompanjerande WWDC-appen släpptes ut på App Store samma dag och var den första kommersiella appen skriven i Swift.
Swift nådde version 1.0 den 9 september 2014.[5]
Swift 2.0 släpptes 2015 Swift 3.0 släpptes 2016 och Swift 4.0 släpptes 2017. 2018 släpptes Swift 4.2 och Swift 5.0 som för första gången inkluderar ABI-stabilitet presenterades.
Datum | Version |
---|---|
2014-09-09 | Swift 1.0 |
2014-10-22 | Swift 1.1 |
2015-04-08 | Swift 1.2 |
2015-09-21 | Swift 2.0 |
2016-09-13 | Swift 3.0 |
2017-09-19 | Swift 4.0 |
2018-03-29 | Swift 4.1 |
2018-09-17 | Swift 4.2 |
2019-03-25 | Swift 5.0[6] |
Översikt
[redigera | redigera wikitext]Swift kan beskrivas som en modernisering av Objective-C. Till skillnad från föregångaren använder sig Swift inte av pekare och kräver initiering av variabler. Den Smalltalk-baserade syntaxen för metodanrop har ersatts av en vanligare, punktnotationsliknande syntax. Samtidigt behåller Swift grundläggande Objective-C koncept, som utvidgningar, stängningar och protokoll (Engelska: extensions, closures, protocols).
Kodexempel
[redigera | redigera wikitext]Hello World
[redigera | redigera wikitext]Exempelkod för Hello World, som presenteras i boken The Swift Programming Language:
print("Hello, world!")
Array-sortering
[redigera | redigera wikitext]Exempelkod som demonstrerar sortering och utskrivning av en array som innehåller element av datatypen Int.
var minArray: [Int] = [65, 3, 17, 93]
print(minArray.sorted())
//Skriver ut "[3, 17, 65, 93]".
Generiskt Byte
[redigera | redigera wikitext]Exempelkod för en funktion som byter ut två T-variablers slumpmässiga värden med varandra. Värdena skrivs ut före och efter användning av funktionen.
import Foundation //Krävs för slumpmässighet.
func generisktByte<T>(inout #förstaVärdet: T, inout #andraVärdet: T) {
(förstaVärdet, andraVärdet) = (andraVärdet, förstaVärdet)
}
var ettVärde = (arc4random()%10)+1, annatVärde = (arc4random()%10)+1
//Själva värdena deklareras och definieras som ett slumpmässigt värde mellan 10 och 1.
print("\(ettVärde), \(annatVärde)") //Värdena skrivs ut före bytet.
generisktByte(förstaVärdet: &ettVärde, andraVärdet: &annatVärde)
print("\(ettVärde), \(annatVärde)") //Värdena skrivs ut efter bytet.
En unik egenskap för programspråket är att det stödjer Unicode-karaktärer i själva koden.
Se även
[redigera | redigera wikitext]Referenser
[redigera | redigera wikitext]- ^ [a b] ”Building assert() in Swift, Part 2: __FILE__ and __LINE__ - Swift Blog -”. Apple Developer. https://developer.apple.com/swift/blog/?id=15. Läst 26 september 2014. ”Swift borrows a clever feature from the D language: these identifiers expand to the location of the caller when evaluated in a default argument list.”
- ^ ”Swift Dokumentation - Om Swift”. https://developer.apple.com/library/ios/documentation/swift/conceptual/swift_programming_language/index.html#//apple_ref/doc/uid/TP40014097-CH3-XID_0. Läst 18 oktober 2014.
- ^ ”Chris Lattner Hemsida”. http://www.nondot.org/sabre/. Läst 18 oktober 2014.
- ^ ”The Verge - Swift”. http://www.theverge.com/2014/6/2/5772992/apple-has-a-new-programming-language-called-swift-and-it-totally-rules. Läst 18 oktober 2014.
- ^ ”Swift Blogg”. https://developer.apple.com/swift/blog/?id=14. Läst 18 oktober 2014.
- ^ Kremenek, Ted (2019-03-25). ”Swift 5 Released!” (på engelska). Swift.org. https://swift.org/blog/swift-5-released/.