„Swift (Programmiersprache)“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Dadavid Swift (Diskussion | Beiträge)
Aktualisiere den GitHub-Link zum neuen Repo
 
(29 dazwischenliegende Versionen von 23 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Infobox Programmiersprache
{{Infobox Programmiersprache
| Name = Swift
| Name =
| Logo = [[Datei:Swift logo with text.svg|200px|Logo]]
| Logo = [[Datei:Swift logo.svg]]
| Beschreibung =
| Beschreibung =
| Paradigma = Multiparadigmen ([[Objektorientierte Programmierung|objektorientiert]], [[Funktionale Programmierung|funktional]], [[Imperative Programmierung|imperativ]], [[Blockstruktur]])
| Paradigma = Multiparadigmen ([[Objektorientierte Programmierung|objektorientiert]], [[Funktionale Programmierung|funktional]], [[Imperative Programmierung|imperativ]], [[Blockstruktur]])
| Erscheinungsjahr = 2014
| Erscheinungsjahr = <!-- Wikidata -->
| Designer =
| Designer =
| Entwickler = [[Apple|Apple Inc.]]
| Entwickler = [[Apple|Apple Inc.]]
| AktuelleVersion = 5.2<ref>{{Internetquelle |url=https://swift.org/download/#releases |titel=Swift.org – Download Swift! |hrsg=Apple Inc. |abruf=2020-03-30}}</ref>
| AktuelleVersion = <!-- Wikidata -->
| AktuelleVersionFreigabeDatum = 24. März 2020
| AktuelleVersionFreigabeDatum = <!-- Wikidata -->
| AktuelleVorabVersion =
| AktuelleVorabVersion =
| AktuelleVorabVersionFreigabeDatum =
| AktuelleVorabVersionFreigabeDatum =
| Typisierung = [[Starke Typisierung|stark]], [[Statische Typisierung|statisch]]
| Typisierung = [[Starke Typisierung|stark]], [[Statische Typisierung|statisch]]
| Implementierung =
| Implementierung =
| Dialekte =
| Dialekte =
| Standardisierungen =
| Standardisierungen =
| Beeinflusst_von = [[Objective-C]], [[Rust (Programmiersprache)|Rust]], [[Haskell (Programmiersprache)|Haskell]], [[Ruby (Programmiersprache)|Ruby]], [[Python (Programmiersprache)|Python]], [[C-Sharp|C#]], [[CLU (Programmiersprache)|CLU]],<ref name="lattner2014">{{Internetquelle|url=http://nondot.org/sabre/|titel=Chris Lattner's Homepage|abruf=2014-06-03 |autor=Chris Lattner|zitat=… it also greatly benefited from the experiences hard-won by many other languages in the field, drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list.}}</ref> [[D (Programmiersprache)|D]]<ref name="swift blog">{{Internetquelle|titel=Building assert() in Swift, Part 2: __FILE__ and __LINE__ – Swift Blog -|url=https://developer.apple.com/swift/blog/?id=15|hrsg=Apple Developer|abruf=2014-09-26 | zitat=Swift borrows a clever feature from the [[Programmiersprache D|D language]]: these identifiers expand to the location of the caller when evaluated in a default argument list.}}</ref>
| Beeinflusst_von = [[Objective-C]], [[Rust (Programmiersprache)|Rust]], [[Haskell (Programmiersprache)|Haskell]], [[Ruby (Programmiersprache)|Ruby]], [[Python (Programmiersprache)|Python]], [[C-Sharp|C#]], [[CLU (Programmiersprache)|CLU]],<ref name="lattner2014">{{Internetquelle |autor=Chris Lattner |url=http://nondot.org/sabre/ |titel=Chris Lattner's Homepage |abruf=2014-06-03 |zitat=… it also greatly benefited from the experiences hard-won by many other languages in the field, drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list.}}</ref> [[D (Programmiersprache)|D]]<ref name="swift blog">{{Internetquelle |url=https://developer.apple.com/swift/blog/?id=15 |titel=Building assert() in Swift, Part 2: __FILE__ and __LINE__ – Swift Blog - |hrsg=Apple Developer |abruf=2014-09-26 |zitat=Swift borrows a clever feature from the [[Programmiersprache D|D language]]: these identifiers expand to the location of the caller when evaluated in a default argument list.}}</ref>
| Beeinflusste =
| Beeinflusste =
| Betriebssystem = [[macOS]], [[Apple iOS|iOS]] (inkl. [[tvOS]], [[watchOS]]), [[Linux]], [[Windows]]
| Betriebssystem = [[macOS]], [[iOS (Betriebssystem)|iOS]] (inkl. [[tvOS]], [[watchOS]]), [[Linux]], [[Windows]], [[z/OS]]
| Lizenz = [[Apache-Lizenz]] 2.0 (seit Swift 2.2)
| Lizenz = [[Apache-Lizenz]] 2.0 (seit Swift 2.2)
| Website = https://swift.org/
| Website = [https://swift.org/ swift.org]
| Dateiendung = .swift
}}
}}


'''Swift''' ist eine [[Allzweck-Programmiersprache]], die 2014 vom US-amerikanischen Unternehmen [[Apple]] veröffentlicht wurde. Swift ist eine [[Programmierparadigma#Multiparadigmatische Programmierung|multiparadigmatische]] Sprache, die Ideen von [[Objective-C]], [[Rust (Programmiersprache)|Rust]], [[Haskell (Programmiersprache)|Haskell]], [[Ruby (Programmiersprache)|Ruby]], [[Python (Programmiersprache)|Python]], [[C-Sharp|C#]], [[CLU (Programmiersprache)|CLU]], [[D (Programmiersprache)|D]]<ref name="swift blog" /> und anderen Programmiersprachen aufgreift.<ref name="lattner2014" /> Sie bietet Mechanismen wie [[Klasse (Objektorientierung)|Klassen]], [[Vererbung (Programmierung)|Vererbung]], [[Closure (Funktion)|Closures]], [[Typinferenz]], [[Funktion höherer Ordnung|Funktionen höherer Ordnung]], [[Generischer Typ|generische Typen]] und [[Namensraum|Namensräume]] sowie multiple [[Signatur (Programmierung)#Rückgabetyp|Rückgabetypen]] und -werte.<ref>{{Internetquelle |autor=Nathan Ingraham |url=http://www.theverge.com/2014/6/2/5772992/apple-has-a-new-programming-language-called-swift-and-it-totally-rules |titel=Apple has a new programming language called Swift, 'and it totally rules' |hrsg=[[The Verge]] |abruf=2014-06-02}}</ref> Der [[Compiler]] basiert auf [[LLVM]].<ref>{{Internetquelle |autor=Owen Williams |url=http://thenextweb.com/apple/2014/06/02/apple-announces-swift-new-programming-language-ios/ |titel=Apple announces Swift, a new programming language for iOS |hrsg=The Next Web, Inc. |abruf=2014-06-02}}</ref> Mit Swift können Anwendungen für die Betriebssysteme [[iOS (Betriebssystem)|iOS]], [[iPadOS]], [[macOS]], [[tvOS]], [[watchOS]], [[Linux]], [[Windows]], [[z/OS]] und [[Android (Betriebssystem)|Android]] entwickelt werden.<ref>{{Internetquelle |autor=SCADE |url=https://docs.scade.io/docs |titel=Swift for Android |werk=Swift for Android Compiler |hrsg=SCADE Inc |datum=2021-09-26 |sprache=en |abruf=2021-09-26}}</ref>
'''Swift''' ist eine [[Programmiersprache]] von [[Apple|Apple Inc.]] für [[Apple iOS|iOS]], [[iPadOS]], [[OS X|macOS]], [[tvOS]], [[watchOS]], [[Linux]] und [[Windows]].


Laut Swifts Chefarchitekten, Chris Lattner,<ref name="lattner2014" /> soll Swift Objective-C bei Apple nicht ersetzen, sondern eine zusätzliche Möglichkeit zum Entwickeln für die Plattformen [[IOS (Betriebssystem)|iOS]] und [[macOS]] bieten.<ref>{{Internetquelle |url=http://lists.apple.com/archives/xcode-users/2014/Jun/msg00024.html |titel=Xcode-users mailing list |hrsg=Apple Inc. |offline=1 |archiv-url=https://web.archive.org/web/20140606220433/http://lists.apple.com/archives/xcode-users/2014/Jun/msg00024.html |archiv-datum=2014-06-06 |archiv-bot=2023-01-17 20:42:42 InternetArchiveBot |abruf=2014-06-05}}</ref>
Es handelt sich dabei um eine [[Programmierparadigma#Multiparadigmatische Programmierung|multiparadigmatische]] Sprache, die Ideen von [[Objective-C]], [[Rust (Programmiersprache)|Rust]], [[Haskell (Programmiersprache)|Haskell]], [[Ruby (Programmiersprache)|Ruby]], [[Python (Programmiersprache)|Python]], [[C-Sharp|C#]], CLU, [[D (Programmiersprache)|D]]<ref name="swift blog" /> und anderen Programmiersprachen aufgreift.<ref name="lattner2014" /> Sie bietet Mechanismen wie [[Klasse (Objektorientierung)|Klassen]], [[Vererbung (Programmierung)|Vererbung]], [[Closure (Funktion)|Closures]], [[Typinferenz]], [[Funktion höherer Ordnung|Funktionen höherer Ordnung]], [[Generischer Typ|generische Typen]] und [[Namensraum|Namensräume]] sowie multiple [[Signatur (Programmierung)#Rückgabetyp|Rückgabetypen]] und -werte.<ref>{{Internetquelle |autor=Nathan Ingraham |url=http://www.theverge.com/2014/6/2/5772992/apple-has-a-new-programming-language-called-swift-and-it-totally-rules |titel=Apple has a new programming language called Swift, 'and it totally rules' |hrsg=[[The Verge]] |abruf=2014-06-02}}</ref> Der [[Compiler]] basiert auf [[LLVM]].<ref>{{Internetquelle |autor=Owen Williams |url=http://thenextweb.com/apple/2014/06/02/apple-announces-swift-new-programming-language-ios/ |titel=Apple announces Swift, a new programming language for iOS |hrsg=The Next Web, Inc. |abruf=2014-06-02}}</ref>

Laut Swifts Chefarchitekten, Chris Lattner,<ref name="lattner2014" /> soll Swift Objective-C bei Apple nicht ersetzen, sondern eine zusätzliche Möglichkeit zum Entwickeln für die Plattformen [[IOS (Betriebssystem)|iOS]] und [[macOS]] bieten.<ref>{{Internetquelle |url=http://lists.apple.com/archives/xcode-users/2014/Jun/msg00024.html |titel=Xcode-users mailing list |hrsg=Apple Inc. |abruf=2014-06-05}}</ref>


== Geschichte ==
== Geschichte ==
Die Entwicklung von Swift begann im Juli 2010 durch [[Chris Lattner]], ab Ende 2011 arbeitete eine größere Entwicklungsmannschaft daran.<ref name="lattner2014" /> Eine am 2. Juni 2014 veröffentlichte Aktualisierung der WWDC-App war die erste veröffentlichte Anwendung, die in Swift geschrieben wurde.<ref>''Platforms State of the Union.'' Session 102 auf der WWDC 2014 bei ca. 30 min.</ref> Auf der Entwicklerkonferenz [[Worldwide Developers Conference#WWDC 2014|WWDC 2014]] wurde Swift erstmals der breiten Öffentlichkeit vorgestellt. Auf der Konferenz wurde das dazugehörige Handbuch angekündigt und im [[iBooks Store]] zur Verfügung gestellt.<ref>{{Internetquelle |url=https://itunes.apple.com/gb/book/swift-programming-language/id881256329 |titel=The Swift Programming Language |hrsg=Apple Inc. |abruf=2014-06-02}}</ref>
Die Entwicklung von Swift begann im Juli 2010 durch [[Chris Lattner]], ab Ende 2011 arbeitete eine größere Entwicklungsmannschaft daran.<ref name="lattner2014" /> Eine am 2. Juni 2014 veröffentlichte Aktualisierung der WWDC-App war die erste veröffentlichte Anwendung, die in Swift geschrieben wurde.<ref>''Platforms State of the Union.'' Session 102 auf der WWDC 2014 bei ca. 30 min.</ref> Auf der Entwicklerkonferenz [[Worldwide Developers Conference#WWDC 2014|WWDC 2014]] wurde Swift erstmals der breiten Öffentlichkeit vorgestellt. Auf der Konferenz wurde das dazugehörige Handbuch angekündigt und im [[iBooks Store]] zur Verfügung gestellt.<ref>{{Internetquelle |url=https://itunes.apple.com/gb/book/swift-programming-language/id881256329 |titel=The Swift Programming Language |hrsg=Apple Inc. |abruf=2014-06-02}}</ref> Das Handbuch wurde mit jeder neuen Version aktualisiert. Eine Version für Lehrkräfte wurde auch von Apple bereitgestellt.


=== Swift 1 ===
=== Swift 1 ===
Zeile 46: Zeile 43:


=== Swift 4 ===
=== Swift 4 ===
Im September 2017 wurde mit Swift 4 die nächste Hauptversion veröffentlicht. Neue Funktionen sind zum Beispiel verbesserte Collection Typen sowie ein einfacherer Umgang mit Strings.<ref>{{Literatur |Autor=Apple Inc. |Titel=Swift 4.0 Released! |Sammelwerk=Swift.org |Datum=2017-09-19 |Online=https://swift.org/blog/swift-4-0-released/ |Abruf=2017-10-06}}</ref> Um vorhandenen Swift-3-Code weiterverwenden zu können, verfügt der Compiler über einen Swift-3- und Swift-4-Modus, die in einem Projekt auch gemeinsam verwendet werden können.
Im September 2017 wurde mit Swift 4 die nächste Hauptversion veröffentlicht. Neue Funktionen sind zum Beispiel verbesserte Collection Typen sowie ein einfacherer Umgang mit Strings.<ref>{{Internetquelle |url=https://swift.org/blog/swift-4-0-released/ |titel=Swift 4.0 Released! |werk=Swift.org |hrsg=Apple Inc. |datum=2017-09-19 |offline=1 |archiv-url=https://web.archive.org/web/20190328104443/https://swift.org/blog/swift-4-0-released/ |archiv-datum=2019-03-28 |archiv-bot=2023-01-17 20:42:42 InternetArchiveBot |abruf=2017-10-06}}</ref> Um vorhandenen Swift-3-Code weiterverwenden zu können, verfügt der Compiler über einen Swift-3- und Swift-4-Modus, die in einem Projekt auch gemeinsam verwendet werden können. IBM stellte 2018 Swift mit dem „IBM® Toolkit for Swift on z/OS“ in der Version 4.0.1 erstmals auf seinen Großrechnern unter z/OS zur Verfügung.<ref>{{Internetquelle |url=https://www.ibm.com/docs/en/SSMEGX_4.0.0/com.ibm.swift.zos.v4.doc/swift_zos_docs.pdf |titel=IBM Toolkit for Swift on z/OS Community Edition |hrsg=IBM |datum=2018 |format=PDF |sprache=en |abruf=2022-08-24}}</ref>


=== Swift 5 ===
=== Swift 5 ===
Die Version 5.0, die am 25. März 2019 veröffentlicht wurde, brachte einige Änderungen und Verbesserungen, unter anderem in der Standardbibliothek und dem Package Manager.<ref>{{Internetquelle |url=https://swift.org/blog/swift-5-released/ |titel=Swift 5 Released! |hrsg=Apple Inc. |abruf=2019-04-13}}</ref> Es gab einen Wechsel vom [[UTF-16]] zum [[UTF-8]] Encoding als Standard bei dem Datentyp String.<ref>{{Internetquelle |url=https://swift.org/blog/utf8-string/ |titel=UTF-8 String |hrsg=Apple Inc. |abruf=2020-03-30}}</ref> Swift 5.1 wurde am 20. September 2019 veröffentlicht,<ref>{{Internetquelle |url=https://swift.org/blog/swift-5-1-released/ |titel=Swift 5.1 Released! |hrsg=Apple Inc. |abruf=2020-03-30}}</ref> die Version 5.2 am 24. März 2020.<ref>{{Internetquelle |url=https://swift.org/blog/swift-5-2-released/ |titel=Swift 5.2 Released! |hrsg=Apple Inc. |abruf=2020-03-30}}</ref> Hinzugefügte Funktionalitäten umfassten unter anderem Property Wrappers<ref>{{Internetquelle |url=https://docs.swift.org/swift-book/LanguageGuide/Properties.html#ID617 |titel=Properties |hrsg=Apple Inc. |abruf=2020-03-30}}</ref> und Opaque Types.<ref>{{Internetquelle |url=https://docs.swift.org/swift-book/LanguageGuide/OpaqueTypes.html |titel=Opaque Types |hrsg=Apple Inc. |abruf=2020-03-30}}</ref> Die Version Swift 5.3 erschien im September 2020.<ref>{{Internetquelle |url=https://swift.org/blog/swift-5-3-released/ |titel=Swift 5.3 released!</ref>
Die Version 5.0, die am 25. März 2019 veröffentlicht wurde, brachte einige Änderungen und Verbesserungen, unter anderem in der [[Standardbibliothek]] und dem [[Paketverwaltung|Package Manager]].<ref>{{Internetquelle |url=https://swift.org/blog/swift-5-released/ |titel=Swift 5 Released! |hrsg=Apple Inc. |abruf=2019-04-13}}</ref> Es gab einen Wechsel vom [[UTF-16]]- zum [[UTF-8]]-Encoding als Standard bei dem Datentyp [[Zeichenkette|String]].<ref>{{Internetquelle |url=https://swift.org/blog/utf8-string/ |titel=UTF-8 String |hrsg=Apple Inc. |abruf=2020-03-30}}</ref> Swift 5.1 wurde am 20. September 2019 veröffentlicht,<ref>{{Internetquelle |url=https://swift.org/blog/swift-5-1-released/ |titel=Swift 5.1 Released! |hrsg=Apple Inc. |offline=1 |archiv-url=https://web.archive.org/web/20220226203243/https://www.swift.org/blog/swift-5-1-released/ |archiv-datum=2022-02-26 |archiv-bot=2023-01-17 20:42:42 InternetArchiveBot |abruf=2020-03-30}}</ref> die Version 5.2 am 24. März 2020.<ref>{{Internetquelle |url=https://swift.org/blog/swift-5-2-released/ |titel=Swift 5.2 Released! |hrsg=Apple Inc. |offline=1 |archiv-url=https://web.archive.org/web/20200325160127/https://swift.org/blog/swift-5-2-released/ |archiv-datum=2020-03-25 |archiv-bot=2023-01-17 20:42:42 InternetArchiveBot |abruf=2020-03-30}}</ref> Hinzugefügte Funktionalitäten umfassten unter anderem Property Wrappers<ref>{{Internetquelle |url=https://docs.swift.org/swift-book/LanguageGuide/Properties.html#ID617 |titel=Properties |hrsg=Apple Inc. |abruf=2020-03-30}}</ref> und Opaque Types.<ref>{{Internetquelle |url=https://docs.swift.org/swift-book/LanguageGuide/OpaqueTypes.html |titel=Opaque Types |hrsg=Apple Inc. |abruf=2020-03-30}}</ref> Die Version 5.3 erschien im September 2020.<ref>{{Internetquelle |url=https://www.swift.org/blog/swift-5.3-released/ |titel=Swift 5.3 released! |abruf=2022-06-05}}</ref> Mit dieser Version ist Swift nicht nur für macOS und Linux, sondern auch für [[Microsoft Windows|Windows]] verfügbar.<ref>{{Internetquelle |url=https://swift.org/blog/swift-on-windows/ |titel=Swift On Windows |hrsg=Apple Inc. |abruf=2020-10-19}}</ref>

Seit 2020 existiert auch ein Windows-Compiler.<ref>{{Internetquelle |url=https://swift.org/blog/swift-on-windows/ |titel=Swift On Windows |hrsg= Apple Inc. |abruf=2020-10-19}}</ref>


== Code-Beispiele ==
== Code-Beispiele ==
Zeile 76: Zeile 71:


// functions (aka "named closures")
// functions (aka "named closures")
func sayHelloTo(yourName name: String) -> Void {
func sayHello(to name: String) -> Void {
print("Hello \(name)")
print("Hello \(name)")
}
}


sayHelloTo(yourName : "Otto")
sayHello(to: "Otto")


// multiline preformatted text
// multiline preformatted text
Zeile 99: Zeile 94:


== Weblinks ==
== Weblinks ==
* [https://developer.apple.com/swift/ Offizielle Webpräsenz]
* [https://swift.org/ Offizielle Webpräsenz]
* [https://swift.org/ swift.org]
* [https://developer.apple.com/swift/ Swift auf developer.apple.com]
* {{GitHub|swiftlang/swift}}
* [https://github.com/apple/swift Repository]


== Einzelnachweise ==
== Einzelnachweise ==

Aktuelle Version vom 26. August 2024, 18:17 Uhr

Swift
Basisdaten
Paradigmen: Multiparadigmen (objektorientiert, funktional, imperativ, Blockstruktur)
Erscheinungsjahr: 2. Juni 2014
Designer: Chris Lattner, Doug Gregor
Entwickler: Apple Inc.
Aktuelle Version 6.0.1[1] (27. September 2024)
Typisierung: stark, statisch
Beeinflusst von: Objective-C, Rust, Haskell, Ruby, Python, C#, CLU,[2] D[3]
Betriebssystem: macOS, iOS (inkl. tvOS, watchOS), Linux, Windows, z/OS
Lizenz: Apache-Lizenz 2.0 (seit Swift 2.2)
swift.org

Swift ist eine Allzweck-Programmiersprache, die 2014 vom US-amerikanischen Unternehmen Apple veröffentlicht wurde. Swift ist eine multiparadigmatische Sprache, die Ideen von Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, D[3] und anderen Programmiersprachen aufgreift.[2] Sie bietet Mechanismen wie Klassen, Vererbung, Closures, Typinferenz, Funktionen höherer Ordnung, generische Typen und Namensräume sowie multiple Rückgabetypen und -werte.[4] Der Compiler basiert auf LLVM.[5] Mit Swift können Anwendungen für die Betriebssysteme iOS, iPadOS, macOS, tvOS, watchOS, Linux, Windows, z/OS und Android entwickelt werden.[6]

Laut Swifts Chefarchitekten, Chris Lattner,[2] soll Swift Objective-C bei Apple nicht ersetzen, sondern eine zusätzliche Möglichkeit zum Entwickeln für die Plattformen iOS und macOS bieten.[7]

Die Entwicklung von Swift begann im Juli 2010 durch Chris Lattner, ab Ende 2011 arbeitete eine größere Entwicklungsmannschaft daran.[2] Eine am 2. Juni 2014 veröffentlichte Aktualisierung der WWDC-App war die erste veröffentlichte Anwendung, die in Swift geschrieben wurde.[8] Auf der Entwicklerkonferenz WWDC 2014 wurde Swift erstmals der breiten Öffentlichkeit vorgestellt. Auf der Konferenz wurde das dazugehörige Handbuch angekündigt und im iBooks Store zur Verfügung gestellt.[9] Das Handbuch wurde mit jeder neuen Version aktualisiert. Eine Version für Lehrkräfte wurde auch von Apple bereitgestellt.

Swift 1.0 wurde am 9. September 2014 von Apple veröffentlicht. An diesem Tag wurde die Golden Master von Swift 1 incl. Xcode 6.1 verteilt.[10]

Auf der WWDC 2015 am 8. Juni 2015 stellte Apple Swift 2.0 vor. Neben verschiedenen sprachlichen Erweiterungen wie bspw. der Ausnahmebehandlung mittels try, throw und catch wurde auch angekündigt, dass die Lizenz von Swift in eine OSI-konforme Open-Source-Lizenz geändert wird.[11] Am 3. Dezember 2015 stellte Apple dann Swift unter die Apache-2.0-Lizenz, die eine freie Nutzung von Swift (auch für kommerzielle Projekte) ermöglicht. Apple gab den Quellcode in einem GitHub-Repository frei und bietet auch eine Portierung für Linux an.[12]

Die letzte Version von Swift 2 ist Swift 2.3 und wurde mit Xcode 8 veröffentlicht.

Auf der WWDC 2016 wurde Swift 3.0 zusammen mit iOS 10.0 vorgestellt. Swift 3 ist die erste neue Hauptversion, seit Apple Swift quelloffen gemacht hat. Durch einige tiefgreifende Änderungen ist Swift 3 nicht mehr Quellcode-kompatibel mit den Vorgängerversionen. Grund dafür sind vor allem die neuen API-Designrichtlinien,[13] die die Grundlage für die Weiterentwicklung von Swift bilden und bei denen Klarheit beziehungsweise Übersichtlichkeit besonders wichtig sein sollen.

Die Liste der Neuerungen und Umstellungen in Swift 3.0 umfasst mehr als 100 Punkte. Apple hat einen Migrationsleitfaden[14] als Hilfe für den Umstieg veröffentlicht. Für das Anpassen von vorhandenem Code gibt es ab Xcode 8.0 einen „Code-Migrator“, der einen Großteil der benötigten Änderungen automatisieren soll.

Im September 2017 wurde mit Swift 4 die nächste Hauptversion veröffentlicht. Neue Funktionen sind zum Beispiel verbesserte Collection Typen sowie ein einfacherer Umgang mit Strings.[15] Um vorhandenen Swift-3-Code weiterverwenden zu können, verfügt der Compiler über einen Swift-3- und Swift-4-Modus, die in einem Projekt auch gemeinsam verwendet werden können. IBM stellte 2018 Swift mit dem „IBM® Toolkit for Swift on z/OS“ in der Version 4.0.1 erstmals auf seinen Großrechnern unter z/OS zur Verfügung.[16]

Die Version 5.0, die am 25. März 2019 veröffentlicht wurde, brachte einige Änderungen und Verbesserungen, unter anderem in der Standardbibliothek und dem Package Manager.[17] Es gab einen Wechsel vom UTF-16- zum UTF-8-Encoding als Standard bei dem Datentyp String.[18] Swift 5.1 wurde am 20. September 2019 veröffentlicht,[19] die Version 5.2 am 24. März 2020.[20] Hinzugefügte Funktionalitäten umfassten unter anderem Property Wrappers[21] und Opaque Types.[22] Die Version 5.3 erschien im September 2020.[23] Mit dieser Version ist Swift nicht nur für macOS und Linux, sondern auch für Windows verfügbar.[24]

// variables
var implicitInteger = 70
var implicitDouble = 70.0
var explicitDouble: Double = 70.0

// constants
let apples = 3
let oranges = 5
let appleSummary = "Ich habe \(apples) Äpfel."
let fruitSummary = "Ich habe \(apples + oranges) Früchte."

print("Hallo Welt!")

// loops
let people = ["Anna": 67, "Julia": 8, "Hans": 33, "Peter": 25]
for (name, age) in people {
    print("\(name) ist \(age) Jahre alt.")
}

// functions (aka "named closures")
func sayHello(to name: String) -> Void {
    print("Hello \(name)")
}

sayHello(to: "Otto")

// multiline preformatted text
let text  = """
Hello Otto,

why don't you take a break?
"""

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. github.com. 27. September 2024.
  2. a b c d Chris Lattner: Chris Lattner's Homepage. Abgerufen am 3. Juni 2014: „… it also greatly benefited from the experiences hard-won by many other languages in the field, drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list.“
  3. a b Building assert() in Swift, Part 2: __FILE__ and __LINE__ – Swift Blog -. Apple Developer, abgerufen am 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.“
  4. Nathan Ingraham: Apple has a new programming language called Swift, 'and it totally rules'. The Verge, abgerufen am 2. Juni 2014.
  5. Owen Williams: Apple announces Swift, a new programming language for iOS. The Next Web, Inc., abgerufen am 2. Juni 2014.
  6. SCADE: Swift for Android. In: Swift for Android Compiler. SCADE Inc, 26. September 2021, abgerufen am 26. September 2021 (englisch).
  7. Xcode-users mailing list. Apple Inc., archiviert vom Original (nicht mehr online verfügbar) am 6. Juni 2014; abgerufen am 5. Juni 2014.  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/lists.apple.com
  8. Platforms State of the Union. Session 102 auf der WWDC 2014 bei ca. 30 min.
  9. The Swift Programming Language. Apple Inc., abgerufen am 2. Juni 2014.
  10. Apple Inc.: Swift Has Reached 1.0 – Swift Blog. Abgerufen am 7. Januar 2018 (amerikanisches Englisch).
  11. Swift 2.0
  12. The Swift Linux Port
  13. API-Designrichtlinien
  14. Migrating to Swift 2.3 or Swift 3 from Swift 2.2
  15. Swift 4.0 Released! In: Swift.org. Apple Inc., 19. September 2017, archiviert vom Original (nicht mehr online verfügbar) am 28. März 2019; abgerufen am 6. Oktober 2017.  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/swift.org
  16. IBM Toolkit for Swift on z/OS Community Edition. (PDF) IBM, 2018, abgerufen am 24. August 2022 (englisch).
  17. Swift 5 Released! Apple Inc., abgerufen am 13. April 2019.
  18. UTF-8 String. Apple Inc., abgerufen am 30. März 2020.
  19. Swift 5.1 Released! Apple Inc., archiviert vom Original (nicht mehr online verfügbar) am 26. Februar 2022; abgerufen am 30. März 2020.  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/swift.org
  20. Swift 5.2 Released! Apple Inc., archiviert vom Original (nicht mehr online verfügbar) am 25. März 2020; abgerufen am 30. März 2020.  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/swift.org
  21. Properties. Apple Inc., abgerufen am 30. März 2020.
  22. Opaque Types. Apple Inc., abgerufen am 30. März 2020.
  23. Swift 5.3 released! Abgerufen am 5. Juni 2022.
  24. Swift On Windows. Apple Inc., abgerufen am 19. Oktober 2020.