0 of 18 lessons complete (0%)
Swift Tour: Le basi

Variabili e Costanti del linguaggio Swift | Il contenitore tutto fare

This is a preview lesson
Purchase this course, or sign in if you’re already enrolled, to take this lesson.

Arriverà un momento in cui si accenderà la lampadina e tutto sarà più chiaro. E questo momento, per me, è arrivato quando ho cominciato ad associare argomenti di programmazione a cose reali e della quotidianità. 

Sono pazzo?

Può darsi! 😂

Ma non devi dimenticare che chi ha inventato queste “cose” è sempre un essere umano. E noi, per indole, tendiamo a ricondurre un problema a qualcosa di tangibile e di facile comprensione.

Immagina quando, nell’800, dovevano spiegare cos’era una macchina. Io avrei dato una spiegazione del genere: “una carozza che si muove da sola, senza i cavalli”.

La programmazione, secondo me, andrebbe spiegata così. 

E voglio cominciare ad applicare questo concetto da uno degli argomenti che ti trascinerai da qui fino alla fine dei tuoi giorni: Le variabili e costanti del linguaggio Swift.

Pronto? Si parte!

Comandare e Conservare

Se adesso ti dico “vammi a comprare 2 mele” il tuo cervello elabora questa richiesta dividendola in due parti:

  1. Da un lato recepisce il comando “vammi a comprare”, cioè l’azione che dovrai sfolgere.
  2. Dall’altro lato tiene in memoria, cioè nella tua mente, ciò che serve a completare il comando: “2 mele”.

La programmazione funzione esattamente così.

Avremo keywords, cioè parole del linguaggio Swift, che esprimeranno dei comandi (per esempio il print) ed altre keywords che ti permetteranno di conservare informazioni.

Dato che già una keyword per impartire ordini l’abbiamo vista nella precedente lezione (e altre le vedremo più avanti), oggi voglio occuperarmi della conservazione delle informazioni all’interno del codice.

slide-corso-linguaggio-swift-x3290423

Partiamo da un esempio reale. Devo romperti le 🎾 con un po’ di teoria, ma ti assicuro che ne verrà la pena.

Nella quotidianità conserviamo le varie cose in diversi contentitori. Per esempio le foto le carichiamo su dropbox, le magliette le mettiamo nel cassetto (o sopra la sedia), la pasta nel barattolo….

Se astraiamo il discorso, ogni cosa la mettiamo dentro un contenitore specializzato in base a ciò che dovrà contenere.

Allo stesso modo, all’interno del nostro codice, creeremo dei contenitori che ci aiuteranno a conservare e gestire le informazioni che serviranno al funzionamento dell’app.

Esempio: Creerai un contenitore in cui verrà conservato il testo che l’utente inserirà nel campo (o TextField). Un contenitore per il punteggio del tuo giocatore. Un contenitore per il totale della spesa. Un contenitore per l’immagine del profilo…

Una volta conservate le varie cose all’interno di queste scatole, potremo spostarle da un punto all’altro della nostra app, eseguire calcoli etc.

Immagina un’app in stile ecommerce come Amazon.

Quando selezioni un elemento dal feed e lo aggiungi al carrello, lato codice sta prendendo quell’elemento, che è contenuto in una scatola, e lo sta spostando all’interno di un altro contenitore che rappresenta il carrello acquisto.

Ci sei fin qui? 🤔

In caso scrivimi un commento in fondo alla lezione (non farti problemi per la domanda, più ne fai e meglio è).

Il concetto di Variabile e Costante

Il linguaggio Swift ci mette a disposizione due keywords, due parole contenute nel vocabolario di Swift, che ti permetteranno di creare questi famosi contenitori.

Sono var e let. 

Una var o variabile è un contenitore che, una volta creato, potrà cambiare ciò che trasporta al suo interno. Quindi potrai aprire la scatola, prendere il contenuto e cambiarlo quante volte vorrai.

Un esempio di var potrebbe essere una scatola in cui conservare il punteggio massimo del giocatore. Dato che l’utente potrà giocare altre partite, e quindi superare il record, dovrai utilizzare un contenitore variabile (cioè una var).

Una let o costante è una scatola che non potrà cambiare mai il valore contenuto al suo interno. Quindi, creerai la scatola, gli metterai un valore e questo non lo potrai più cambiare. Potrai solamente leggere il valore che contiene.

Un’applicazione di let potrebbe essere l’id univoco associato ad un utente o ad una transazione. In genere sono valori che vengono  generati una volta sola e non più cambiati.

Ma ad ogni modo, l’utilizzo di una scatola di tipo var o let dipenderà esclusivamente dal progetto e dal codice che scriverai. Cioè, se ti dovessi accorgere che una var non dovesse cambiare mai il suo valore potrai cambiarla in let o viceversa.

L’etichetta

Dentro un’app, quindi dentro al tuo codice, esisteranno diverse var/let. Ogni contenitore dovrà avere un’etichetta cioè un nome che ci permetterà di identificarle e quindi utilizzarle.

Dichiarare una variabile

Ho dovuto fare un po’ di teoria, spero che tu non abbia skippato tutto 😂.

Intanto apri o crea un nuovo Playground, nella lezione precedente ho spiegato come fare, e cancella tutto quello che c’è nell’Editor.

Per creare una variabile, o con un termine informatico dichiarare una variabile, con il linguaggio Swift devi partire dalla scrittura della keyword var (tutto minuscolo).

Mentre comincerai a scrivere, l’assistente di Xcode aprirà un pannello in cui compariranno le varie opzioni, scegli o scrivi quella che riporta la dicitura “Swift var Declaration“:

creare-una-var-linguaggio-swift

Xcode ti suggerisce una sintassi o pattern. Tieni a mente questa parola perché la ritroveremo più volte. 

Un pattern è un modello predefinito che potrai seguire per realizzare qualcosa, in questo caso una variabile.

Nel nostro caso, il pattern ci suggerisce di inserire:

  1. la keyword var
  2. Un “name” o l’etichetta della var
  3. Poi il simbolo “=”
  4. ed inifinite un “value” (un valore).

Ipotizziamo di voler mostrare la nostra età in una pagina della nostra applicazione. Inanzitutto ci serve una variabile in cui conservare questo valore.

Potremo chiamare la var “età” e mettere a destra dell’uguale un valore che rappresenta la nostra età. Quindi, nel tuo Playground, scriverai:

var età = 24

In base al pattern:

  • la nostra var ha un’etichetta, cioè name, “età”
  • ed il suo value è 24.

Creare una var con il linguaggio Swift sembra un gioco da ragazzi.

Prima però di andare avanti è importante soffermarci su un piccolo aspetto che per me è importantissimo 😎

Assegnazione

Fatti un tatuaggio o stampa da qualche parte queste parole:

Il simbolo uguale, per l’informatica, non è l’uguale matematico.

E allora che cos’è?

Assegnazione.

Peppe, davvero! che è? 😱

Il simbolo uguale è un operatore. Cioè una keyword del linguaggio che esprime un’operazione tra elementi.

Letteralmente significa prendere ciò che c’è alla destra dell’eguale per passarlo (Assegnarlo) a ciò che c’è alla sinistra dell’uguale.

A sinistra ci sarà sempre una variabile/costante, cioè un contenitore, ed a destra sempre un valore. 

Se ancora non ti è chiaro, il simbolo uguale:

  1. prende il valore che c’è sulla destra
  2. apre la variabile che c’è sulla sinistra
  3. e mette il valore dentro il contenitore.

Come si legge?

Noi stiamo scrivendo in una nuova lingua, il linguaggio Swift. Come ogni lingua, anche quelle informatiche, hanno un sistema di lettura e pronuncia.

Tu hai appena scritto un’istruzione, cioè un codice che viene interpretato dal compilatore (compilatore = chi converte il codice in programma/app, nel nostro caso il Playground):

var età = 24

Quando il Playground esegue il codice, legge ogni singola riga ed in base a ciò che hai scritto capisce cosa deve fare:

  1. Legge var e capisce che deve “creare una variabile”
  2. Poi c’è uno spazio e va avanti
  3. Trova una parola, cioè “età” e, non essendo del vocabolario di Swift, prova a constualizzare cioè a capire dove e perché è stata inserita
  4. Capisce che siamo in un pattern per la creazione di una var e quindi “età” la considera come l’etichetta della variabile
  5. Vede l’uguale e sa che stiamo per fare un’operazione di assegnazione
  6. C’è un valore dopo il simbolo = e lo assegna alla variabile età.

Il codice va letto così, parola per parola. Ogni parola ha un significato ben preciso e che dipende dal “luogo” in cui viene scritta.

Come esercizio, da qui in avanti, prova a leggere il codice come ho fatto io. Cioè dai ad ogni parola il suo significato.

  • var: keywords per la creazione di una var
  • età: in questo caso è l’etichetta della var, perché siamo in un pattern
  • = simbolo di assegnazione
  • 24 il valore assegnato alla var età

😅 Se dovessero esserci dei problemi, non esitare a scrivermi un commento. Ci tengo che sia tutto chiaro, quindi chiedimi pure qualsiasi cosa.

Slide corso linguaggio swift creare var

Valori testuali

Al momento abbiamo creato una variabile con un valore di tipo numerico intero (senza la virgola). Ovviamente, possiamo utilizzare altre tipologie di valori ed impareremo a farlo tra qualche lezione.

Intanto, però, voglio introdurti un tipo di valore che è quello rappresentato dai testi.

Già hai incontrato questa forma di rappresentazione. Infatti nel print, nelle precedente lezione, ti ho fatto aggiungere un testo messo tra delle doppie virgolette.

Mettere un testo tra le virgolette ci permetterà di rappresentare dei testi. All’interno potrai mettere lettere, numeri, emoji e caratteri speciali. Verranno sempre considerati come testo se si trovano tra le doppie virgolette:

var codiceFiscale = "spngpp93l19c351f" 
var saluto = "ciao xcoders, il tuo livello è 99"

Utilizzare le variabili

Finora ti ho fatto solamente creare variabili con il linguaggio swift. Un programma non è tale fin quando il codice non esegue delle verie e proprie modifiche.

Due sono le operazione che voglio mostrarti. La modifica e l’utilizzo.

Modifica del contenuto

La prima operazione che voglio mostrarti è quella che riguarda la modifica del contenuto di una variabile.

Nota che ho detto “modifica del contenuto” e non “modifica di una variabile” è importantissimo e tra poco ti spiegherò il perché.

Per modificare il contenuto di una variabile dobbiamo utilizzare il pattern:

nomeVariabile = nuovoValore

Quindi a sinistra dell’uguale l’etichetta della variabile ed a destra il nuovo valore. Un po’ come per la creazione di una variabile ma questa volta senza esplicitare la keyword var (che ti ricordo fa capire che vogliamo creare una nuova var).

Faccio un esempio modificando la var età che abbiamo creato poco fa:

var età = 24 // dichiaro ed inizializzo la var età
età = 55 // modifico la var età

Lo stesso lavoro lo possiamo fare anche per le variabili con valore testuale. Lascio a te questo esercizio.

Passare il contenuto

È importante capire che l’assegnazione di un nuovo valore, ad una variabile, cancella il precedente. 

Puoi notare questo cambiamento mettendo dei print prima e dopo il cambiamento della variabile. All’interno del print puoi mettere l’etichetta della variabile (senza le doppie virgolette perché non vogliamo il testo):

var età = 24 
print(età)
 
età = 55 
print(età) 

In questo modo in console vedrai che prima dell’istruzione “età = 55” la variabile età conteneva il valore 24 e, successivamente alla nuova assegnazione, il valore 55.

Pazzesco no?

Quando dicevo che cambiamo il valore e non l’intera variabile mi riferivo proprio a questo. Cioè al fatto che l’assegnazione di un nuovo valore cambia quello che c’è dentro la variabile (in realtà c’è un motivo più tecnico dietro ma lo vedremo più avanti).

Una piccola chiccha prima di lasciarci le cose tecniche alle spalle (le riprenderemo nella prossima lezione ovviamente 😂).

All’interno di un print puoi inserire più valori, l’importante che siano divisi da una virgola. Esempio potremmo contestualizzare il print mettendo un messaggio che comparirà in console:

var età = 24 
print("la mia età:", età) 
età = 55 
print("la mia nuova età:", età)

Questa proprietà è utilissima perché, ti ricordo, quando svilupperemo app non ci sarà la colonna di destra del Playground ma solamente la console!

Slide corso linguaggio swift variabili modifica e utilizzo

Dichiarare una Costante

Il pattern da seguire è sempre lo stesso, dovrai solamente cambiare la keyword ed avrai creato la tua costante con il linguaggio Swift:

let nomeCostante = valore

Ti ricordo che, come suggerisce il nome, una volta creata la costante non potrai più modificare il suo valore. Quindi non potrai più eseguire operazioni di assegnazione ma potrai semplicemente utilizzare il suo contenuto:

let codiceFiscale = "spngpp93...." 
print(codiceFiscale)
Slide corso linguaggio swift creare una costante

Nomenclatura

L’ultimo argomento di questa lezione riguarda una serie di regole da rispettare quando si definisce l’etichetta delle variabili e costanti del nostro codice.

Vediamo subito le cose che non puoi fare:

  1. Non puoi usare spazi nel nome della var/let
  2. Non puoi utilizzare il trattino alto
  3. Non puoi usare caratteri speciali (es: il punto interrogativo, esclamativo etc)
  4. Non puoi chiamare una variabile o costante con il nome di un’altra variabile/costante.
errori nomenclatura var e let linguaggio swift

Ci sarà sicuramente qualche altro esempio ma al momento non mi viene (in caso scrivimi un commento).

Dall’altro lato, per scrivere correttamente il nome di una var/let ci sono 2 regole e stili principali:

  1. camelCase: cioè scrivere il nome di una var/let composta con la prima lettera minuscola e la seconda e successive in maiuscolo
    1. Esempio: nomeCognome buttonText letterSpacingMax userName userPassword…
  2. snake_case: mettere tra una parola e l’altra il simbolo underscore e poi scrivere tutto in minuscolo
    1. Esempio: nome_cognome user_name numero_massimo_utenti…

IMPORTANTE ➡️ Se non vuoi far sanguinare gli occhi ad uno sviluppatore iOS, quando crei una variabile o costante, con il linguaggio Swift, scrivi sempre la prima lettera minuscola.

Perché?

Perché ci saranno elementi del codice che partiranno con la lettera maiuscola ed avranno un’importanza ed un significato diverso.

In più sono regole e modi di fare che chi ha creato il linguaggio Swift ha suggerito.

In questo modo quando guarderai il codice di qualcun altro e vedrai qualcosa che comincia in minuscolo potrebbe tranquillamente trattarsi di una var/let (anche se non è sempre detto dato che non c’è un divieto da parte di Xcode/Playground di scrivere in maiuscolo/minuscolo le variabili).

Slide corso linguaggio swift nomenclatura variabili e costanti

Conclusione

Da qui in avanti si comincerà ad aprire un mondo di fronte a te. Il primo tassello reale, fin ora abbiamo giocato, sono le variabili e costanti del linguaggio Swift.

Tra tutti gli argomenti, var e let sono quelle cose che ti porterai dietro in qualsiasi codice e applicazione. Se capisci queste ti assicuro che ti ritrovi già a metà dell’opera.

Ad ogni modo, se hai avuto qualche problema (di qualsiasi natura, anche spiriturale) scrivimi un commento in fondo alla lezione e appena posso ti risponderò.

Ci vediamo alla prossima lezione
e ti auguro una buona programmazione!