Swift (linguaggio di programmazione)
Swift (dall'inglese "rapido, svelto") è un linguaggio di programmazione orientato agli oggetti per sistemi macOS, iPadOS, iOS, watchOS, tvOS e Linux, presentato da Apple durante la WWDC 2014.[2] Rispetto al linguaggio Objective-C, tipico dei sistemi operativi Apple, Swift semplifica il lavoro di scrittura del codice. Swift è stato progettato per coesistere con Objective-C ma anche per essere più resiliente agli errori. Il compilatore LLVM è incluso in Xcode e Swift utilizza il run time di Objective-C, permettendo l'uso di codice Objective C, C e Swift in un unico programma.
Swift linguaggio di programmazione | |
---|---|
![]() | |
Autore | Apple Inc. |
Data di origine | 9 settembre 2014 |
Ultima versione | 5.10.1 (5 giugno 2024) |
Utilizzo | General purpose |
Paradigmi | Multiparadigma |
Tipizzazione | forte |
Specifiche di linguaggio | Manuale Swift |
Estensioni comuni | swift |
Influenzato da | C, Objective C, D[1] |
Implementazione di riferimento | |
Implementazione | compilatore LLVM |
Sistema operativo | macOS, iOS, watchOS, tvOS, Linux |
Licenza | Apache 2.0 |
Sito web | swift.org/ |
Il 25 marzo 2019 è stata pubblicata la versione 5.0 sotto licenza open source Apache 2.0 per sistemi Apple e Linux.[3]
Storia
modificaLo sviluppo di Swift è iniziato nel 2010 grazie a Chris Lattner, programmatore informatico della Apple. Swift ha preso in prestito idee "da Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, e da troppi altri per elencarli tutti".[4]
Al WWDC del 2 giugno 2014 la prima app scritta in Swift è proprio l'app ufficiale dell'evento. E, durante lo svolgimento dello stesso, Apple divulga ai presenti un manuale di 500 pagine: "The Swift Programming Language",[5] disponibile gratuitamente sull'iBookstore di casa Cupertino.
Al keynote dell'8 giugno 2015 Apple ha annunciato la distribuzione di Swift 2.0 con notevoli miglioramenti nella struttura del linguaggio e aggiunta di funzioni, impegnandosi per rendere il progetto open source nel futuro prossimo. Il 3 dicembre dello stesso anno viene lanciato il sito swift.org e il codice sorgente del linguaggio è pubblicato con licenza Apache 2.0 su un repository GitHub.[6] Apple resta lo sviluppatore principale e ne rende disponibile anche una versione del compilatore per Linux (Creato appositamente per Ubuntu).[7]
Il 13 settembre 2016, durante la WWDC 2016, Apple ha presentato la terza versione del suo linguaggio di programmazione insieme ad un'applicazione per iPad, Swift Playgrounds, che permette, tramite una grafica semplice e intuitiva, di imparare a programmare con Swift.
Cronologia delle versioni
modificaVersione | Data rilascio | Novità |
---|---|---|
1.0 | 9 settembre 2014 | |
1.1 | 22 ottobre 2014 | |
1.2 | 8 aprile 2015 | |
2.0 | 21 settembre 2015 | |
2.1 | 20 settembre 2015 | |
2.2 | 21 marzo 2016 | |
2.3 | 12 giugno 2016 | |
3.0 | 13 settembre 2016 | [8] |
3.1 | 27 marzo 2017 | |
4.0 | 19 settembre 2017 | [9] |
4.1 | 29 marzo 2018 | |
4.2 | 17 settembre 2018 | [10] |
5.0 | 25 marzo 2019 | [11] |
5.1 | 10 settembre 2019 | [12] |
5.2 | 24 marzo 2020 | [13] |
5.3 | 16 settembre 2020 | [14] |
5.4 | 26 aprile 2021 | [15] |
5.5 | 20 settembre 2021 | [16] |
5.6 | 14 marzo 2022 | [17] |
5.7 | 12 settembre 2022 | [18] |
5.8 | 30 marzo 2023 | [19] |
5.9 | 18 settembre 2023 | [20] |
5.10 | 5 marzo 2024 | [21] |
Sintassi
modificaHello, world!
modificaHello, world! è il classico programma che scrive in output "Hello, world!".
import SwiftUI
print("Hello, world!")
Analisi
modificaimport SwiftUI
La funzione "import" importa nel programma determinati metodi o classi che permettono a quest'ultimo di implementare determinati comandi. "SwiftUI" è un framework front end, sviluppato da Apple, che fornisce le funzioni per gestire l'interfaccia grafica (GUI) e gli input dell'utente. In questo caso il codice compila anche senza importare SwiftUI (è stato importato solo come esempio) in quanto l'unica funzione utilizzata è stata la funzione "print" che fa parte del core del linguaggio.
print("Hello, world!")
La funzione "print" permette di mostrare a schermo ciò che viene scritto tra le virgolette dentro le parentesi tonde.
In Swift non è necessario inserire il punto e virgola (;) alla fine di ogni istruzione (a differenza di C o altri linguaggi).
Esempi pratici
modificaMaiuscolo e minuscolo
modificaIn questo esempio convertiamo una parola in maiuscolo e l'altra in minuscolo:
// Dichiara le variabili da utilizzare
var nome = "Mario", cognome = "Draghi"
// Converti la stringa in maiuscolo
nome = nome.uppercased()
// Converti la stringa in minuscolo
cognome = cognome.lowercased()
// Stampa il risultato
print(nome, cognome)
Prima lettera maiuscola di ogni parola
modificaIn questo esempio convertiamo in maiuscolo solo il primo carattere di ciascuna parola e contiamo i caratteri che compongono la stringa stessa:
import SwiftUI
// Dichiara le variabili da utilizzare
var stringa = "stringa di prova"
// Stampa il risultato
print("La frase \"\(stringa.capitalized)\" è composta da \(stringa.count) caratteri, inclusi gli spazi")
Sostituzione parole
modificaIn questo esempio sostituiamo una specifica parola con un'altra:
import SwiftUI
// Dichiara le variabili da utilizzare
var stringa = "Questo è il risultato precedente"
// Sostituisci la parola "precedente" con "successivo" (var.replacingOccurrences)
stringa = stringa.replacingOccurrences(of: "precedente", with: "successivo")
// Stampa il risultato
print(stringa)
Condizione su parola palindroma
modificaUna parola palindroma è una parola che, sia la si legga da destra che da sinistra, risulta sempre uguale (ad esempio, "anna" è una parola palindroma). A seguito verrà mostrato che, data una parola, questo scriva a schermo se è palindroma o no.
// Dichiara le variabili da utilizzare
var parola = "anna"
var parolaInvertita : String
// Inverti la stringa
parolaInvertita = String(parola.reversed())
// Confronta le variabili e stampa il risultato
if (parola == parolaInvertita) {
print("La parola \(parola) è palindroma")
} else {
print("La parola \(parola) NON è palindroma")
}
Array e cicli
modificaInfine, nell'esempio seguente, vediamo la dichiarazione di un array e la stampa di esso con il ciclo for-in
// Dichiara array
var alfabetoArray = ["Alpha", "Beta", "Gamma", "Delta"]
// Stampa l'array dichiarato
for (indice, elemento) in (alfabetoArray.enumerated()) {
print(indice, ":", elemento)
}
Dichiarare costanti e variabili
modifica// Metodo 1
var nome = "Mario", cognome = "Rossi", genere = "M", età = 46
// Metodo 2
var (nome, cognome, genere, età) = ("Mario", "Rossi", "M", 46)
// Metodo 3
var nome = "Mario"
var cognome = "Rossi"
var genere = "M"
var età = 46
- Non è obbligatorio dichiarare il tipo di costanti e variabili (String, Int, Double, ...);
- Le parentesi tonde () per racchiudere condizioni di confronti (if-else, switch...) e cicli (for in, do-while...) sono facoltative;
- Il punto e virgola ";" a fine istruzione, anch'esso è facoltativo;
// Con dichiarazione del tipo tra parentesi tonde e punto e virgola alla fine
let a: (String) = "A";
// Senza parentesi tonde e punto e virgola alla fine
let b: String = "B"
// Senza nemmeno la dichiarazione del tipo (String)
let c = "C"
- Il nome delle costanti e delle variabili può contenere quasi tutti i caratteri, inclusi i caratteri Unicode:
// Dichiara le costanti da utilizzare
let π = 3.14159
let 你好 = "你好世界"
let 🍓 = "Fragola"; 🥝 = "Kiwi"; 🍎 = "Mela"
SwiftUI
modificaSwiftUI è un framework di sviluppo realizzato da Apple Inc. e scritto interamente in Swift.
Presentato nel WWDC 2019, SwiftUI è stato pensato per costruire interfacce utente tramite un unico set di tool e API che coinvolge tutto l'ecosistema Apple (precedentemente si faceva uso di frameworks distinti: AppKit per macOS, UIKit per iOS e WatchKit per watchOS).
Note
modifica- ^ Building assert() in Swift, Part 2: __FILE__ and __LINE__ - Swift Blog -, su developer.apple.com, Apple Developer. URL consultato il 26 settembre 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.»
- ^ (EN) Apple WWDC 2014: iPhone, iPad updates, "smart home" system and more, su cbsnews.com, CBS News, 2 giugno 2014. URL consultato il 3 giugno 2014.
- ^ The Swift Programming Language. Contribute to apple/swift development by creating an account on GitHub, Apple, 1º aprile 2019. URL consultato il 1º aprile 2019.
- ^ (EN) Home page di Chris Lattner, su nondot.org. URL consultato il 7 giugno 2014.
- ^ (EN) The Swift Programming Language, Apple, 2 giugno 2014. URL consultato il 7 giugno 2014.
- ^ (EN) Jacob Kastrenakes, Apple's new programming language Swift is now open source, su theverge.com, The Verge, 3 dicembre 2015. URL consultato l'8 dicembre 2015.
- ^ Apple rende Swift open source, ma non poteva fare altrimenti, su dday.it. URL consultato il 12 giugno 2015.
- ^ SWIFT 3.0: Novità release, su xcoding.it. URL consultato il 06/01/2019.
- ^ SWIFT 4.0: Novità release, su xcoding.it. URL consultato il 06/01/2019.
- ^ SWIFT 4.2: Novità release, su xcoding.it. URL consultato il 06/01/2019.
- ^ SWIFT 5.0: Novità release, su xcoding.it. URL consultato l'11/11/2019.
- ^ (EN) Swift.org - Swift 5.1 Released!, su swift.org. URL consultato il 20/09/2019 (archiviato dall'url originale il 26 febbraio 2022).
- ^ (EN) Swift.org - Swift 5.2 Released!, su swift.org. URL consultato il 26/03/2020 (archiviato dall'url originale il 25 marzo 2020).
- ^ (EN) Swift.org - Swift 5.3 Released!, su swift.org. URL consultato il 16/09/2020 (archiviato dall'url originale il 26 settembre 2020).
- ^ (EN) Swift.org - Swift 5.4 Released!, su swift.org. URL consultato il 26/04/2021 (archiviato dall'url originale il 26 aprile 2021).
- ^ (EN) Swift.org - Swift 5.5 Released!, su swift.org. URL consultato il 20/09/2021 (archiviato dall'url originale il 21 settembre 2021).
- ^ (EN) Swift.org - Swift 5.6 Released!, su swift.org. URL consultato il 20/09/2021.
- ^ (EN) Swift.org - Swift 5.7 Released!, su swift.org. URL consultato il 20/09/2021.
- ^ (EN) Swift.org - Swift 5.8 Released!, su swift.org. URL consultato il 07/04/2021.
- ^ (EN) Swift.org - Swift 5.9 Released!, su swift.org. URL consultato il 26/09/2023.
- ^ (EN) Swift.org - Swift 5.20 Released!, su swift.org. URL consultato il 05/03/2024.
Altri progetti
modifica- Wikimedia Commons contiene immagini o altri file su Swift
Collegamenti esterni
modifica- (EN) Sito ufficiale, su swift.org.
- Repository sorgenti di Swift, su github.com.
- (EN) Handbook, su developer.apple.com/
- (IT) Sito in italiano, su apple.com/it/
Controllo di autorità | LCCN (EN) sh2015001571 · GND (DE) 1066617112 · BNF (FR) cb17039945c (data) · J9U (EN, HE) 987007412504105171 |
---|