Home Testo Corso Swift Introduzione alle variabili e Costanti, Let e Var

Introduzione alle variabili e Costanti, Let e Var

2388
0
Costanti-e-Variabili

Costanti e Variabili, Let e Var

Allora! Cominciamo ad analizzare le basi di questo linguaggio Swift. Come tutti i linguaggi di programmazione, la cosa essenziale è conservare le informazioni, come vedremo andando avanti nel corso esistono tanti modi, dalle più semplici, come in questa lezione, passando dall’array, fino ad arrivare a sistemi più complessi come i database.

In questa lezione vedrai come conservare le informazioni in Variabili e Costanti.

Costante (Let) = Il suo contenuto NON PUO‘ cambiare nel tempo

Variabile (Var) = Il suo contenuto PUO‘ cambiare nel tempo

I Commenti

Nel codice spesso capiterà di non ricordare cosa fa una determinata parte di codice o cosa contiene una variabile ecc ecc. Per fortuna qui ci vengono incontro i commenti ovvero parti di testo che il compilatore non elabora perchè racchiusi in determinati tag.

In questi spazi è buona norma scrivere commenti di cosa poi il codice seguente eseguirà, questo perchè al momento della stesura sicuramente avrai in mente il suo scopo ma con il passare del tempo e il complicarsi del codice quando dovrai tornare a modificare o implementare tale codice potresti avere difficolta a ricordare per quale motivo hai scritto quella funzione o perchè hai creato quella variabile. Ecco! I commenti ti saranno di aiuto. 🙂

Se dobbiamo scrivere un commento sulla stessa riga di dove è presente il codice o dobbiamo scrivere una sola riga utilizziamo questo tag all’inizio // altrimenti se dobbiamo scrivere più righe utilizziamo i tag /*  */. Vediamo un esempio

 var numero = 5

// Commento, sul tutta la riga
print(numero) // questo è un commento dopo il codice

/*
Posso scrivere su più righe
seconda riga
terza riga 
ecc ecc
*/

Per creare una costante o una variabile bisogna utilizzare come detto in precedenza una delle 2 parole chiave, let per le costanti o var per le variabili seguito dalla dal nome che vogliamo utilizzare, il simbolo di assegnazione e il valore da assegnare.

 let nome = 5 oppure se si tratta di testo let nome = “Testo”
var nome = 5 oppure se si tratta di testo var nome = “Testo”

analizzando la spiegazione appena fatta possiamo dire che:

  • se assegni un valore numerico basta scrivere solo il valore
  • se assegni un testo esso deve essere contenuto tra le virgolette
  • il nome è buona norma sceglierlo inerente a ciò che conterrà esempio punteggio, costo.. in modo che già a prima lettura si possa capire a cosa serve
  • non puoi creare variabili o costanti con lo stesso nome
  • il valore di una costante non cambierà per tutto il suo utilizzo
  • il valore di una variabile può cambiare nel tempo

Inizializzazione esplicita o Implicita

Implicito

Quando creo una constante o una variabile assegnando loro un valore iniziale. Il compilatore così capisce già in base al dato inserito di che tipo sarà quella costante o variabile.

// Il compilatore capisce che questa constante è di tipo INT
 
 let a = 22

// Il compilatore capisce che questa variabile è di tipo STRING

 var b = "Ciao..."

Qunidi, nel primo esempio sto dicendo che la costante “a” contiente il numero 22, il compilatore in automatico senza che io lo specifico capisce che quella costante contiene un dato di tipo numerico intero. Stessa cosa vale per il secondo esempio dove dico che la variabile  “b” contiene un valore di tipo stringa in quanto gli ho assegnato come contenuto la parole Ciao.

Esplicito

Quando creo una costante o una variabile ma non assegno loro il contenuto ma solo di che tipo sarà quella costante o quella variabile. Per dichiarate il tipo basta utilizzare i ” : ” dopo il nome e specifico a seguire il tipo.

let a : Int  e var b : String

In questo modo sto dicendo al compilatore, occhio!  ho creato questa costante o variabile che conterrà un dato di questo tipo, quindi anche senza aver inizializzato la costante o variabile con un dato reale, ho comunicato al compilatore il tipo di dato che sarà utilizzato.

// Dichiarazione
let a: Int
var b: String

// Assegnazione di una valore del tipo dichiarato, Inizializzazione
a = 22
b = "Ciao..."

A questo punto è giusto precisare che, una volta specificato il tipo di dato che sia in modo esplicito o implicito, esso non può più cambiare.

Per esempio, ho necessità di mettere in ordine delle palle colorate, vado al negozio e compro delle scatole vuote da utilizzare. Esse risulteranno tutte uguali fino a quando non decido di inserirci degli elementi o una etichetta. Arrivato a casa potrei decidere di inserire nella prima scatola palle gialle, nella seconda palle rosse e via dicendo oppure applicare loro una etichetta scrivendo cosa conterranno quelle scatole e in un secondo momento riempirle con le palle colorate corrispondenti al colore riportato sull’etichetta. Con entrambe le operazioni ho assegnato alle scatole una propria identità (esplicito o implicito) che non potrà cambiare nel tempo.

Scusa la banalità ma era solo per ribadire il concetto con un esempio di vita pratica quindi nel nostro caso se io creo una variabile di tipo numero intero successivamente non potrò mai inserire un dato di tipo testo perché il compilatore ha etichettato quella variabile di tipo numero intero e non di tipo stringa.

Conversione Esplicita

Può capitare di avere la necessità di dovere stampare una stringa che contenga anche un valore intero. Basandoci su quello che abbiamo detto fino ad ora ciò sarebbe impossibile, ma grazie a una forma chiamata “Conversione esplicita” sarà possibile ovviare a questo problema.

Cosa importante da ricordare è che con questa forma non viene cambiato il tipo della variabile, come erroneamente potresti pensare, bensì viene cambiato solo in quello specifico contesto o operazione.

Per fare una conversione esplicita momentanea basta racchiudere il dato tra le parentesi tonde preceduto dal tipo di dato in cui si vuole convertirlo. Quindi, se voglio convertire un dato in una stringa scriverò String(dato).

// Esempio

let numero01 = 5
let numero02 = 4
let risultato = numero01 + numero02

// Essendo testo una stringa per associarli anche il risultato 
// farò una conversione esplicita della costante risultato
// essendo un intero numerico 

var testo = "Il risultato è " + String(risultato)
// Oppure ma vale solo se si converte in stringa possiamo scrivere
// anche la conversione in questa forma implicita
var testo = "Il risultato è " + "\(risultato)"
print (testo)

Prima di concludere con i tipi di dati e operazioni facciamo un punto della situazione:

  • se assegni un valore numerico basta scrivere solo il valore
  • se assegni un testo esso deve essere conteuto tra le virgolette
  • il nome è buona norma sceglierlo innerente a ciò che conterrà esempio punteggio, costo.. in modo che già a prima lettura si possa capire a cosa serve
  • non puoi creare variabili o costanti con lo stesso nome
  • il valore di una costante non cambierà per tutto il suo utilizzo
  • il valore di una varibile può cambiare nel tempo
  • Puoi creare una var o let in modo esplicito o implicito
  • Puoi effettuare una conversione esplicita momentanea quando necessario

Tipi di dati maggiormente utilizzati

Fino a qui abbiamo nominato solo 2 tipi di dato Int e String, ora vediamo in una tabella le più usate in swift.

Int : Tutti i numeri interi positivi e negativi. Esempio : -1, -2, +3321, 0

Float : Rappresenta l’insieme dei numeri reali, (gli Int + i numeri con la virgola). Esempio : -4.2, 2.004, 55, 31, 0.1

Double : Simile al Float ma con una precisione dopo la virgola maggiore. Di default quando inserisci un numero con la virgola Swift lo interpreta come Double e non come Float.

Character : Rappresenta i caratteri, si può assegnare solo un carattere ad una var, altrimenti diventa una stringa. Quando lo si assegna ad una var deve essere racchiuso tra gli apici “”. Esempio : “a” “b” “1” “4” “z” ” ” . Anche lo spazio vuoto è un carattere!

String : Più caratteri formano una stringa. Esempio: “Il risultato è”, “il Mio nome è Francesco”

Bool : Rappresenta la condizione di VERO (true) o FALSO (false).

Perdita di informazioni passando da un tipo ad un altro

Fare una conversione, da un tipo di dato più grande (come il Double) ad uno più piccolo (come l’Int), comporta perdita di informazione. Questo perché se io passo da un dato double 55,37 in un intero (che prende solo i numeri prima della virgola) si avrà la perdita della parte dopo la virgola ovvero ,37 e rimarrà solo 55.

Solo tutti i dati convertiti a stringa mantengono il proprio valore senza perdita di dati.

Conversioni senza perdita di dati:

  • da Int a Float o Double
  • da Float a Double
  • da Int, Float e Double in String

Conversioni perdita di dati:

  • da Double a Float o Int
  • da Float a Int

Le operazioni matematiche

+ : Somma due numeri o variabili

var a = 5
var b = 2 + 3
var c = a + b
// c è uguale a  10

Sottrazione tra due numeri o variabili

var a = 5
var b = 2 + 3
var c = a - b
// c è uguale a  0

* Moltiplicazione tra due numeri o variabili

var a = 5
var b = 2 + 3
var c = a * b
// c è uguale a  25

/ : Divisione tra due numeri o variabili

var a = 5
var b = 2 + 3
var c = a / b
// c è uguale a  1

+= : Somma al suo valore

var a = 5
a += 2
// a è uguale a 7, puoi scrivere anche a = a + 2

= : Sottrai al suo valore

var a = 5
a -= 2
// a è uguale a 3, puoi scrivere anche a = a - 2

*= : Moltiplica al suo valore

var a = 5
a *= 2
// a è uguale a 10, puoi scrivere anche a = a * 2

/= : Dividi al suo valore

var a = 6
a /= 2
// a è uguale a 3, puoi scrivere anche a = a / 2

Con questo argomento abbiamo chiuso la lezione sulle variabili e costanti, può sembra complesso ma con la pratica, la loro gestione risultrà semplice e naturale anche perchè le utilizzerai continuamente.

Per qualunque dubbio o domanda scrivi un commento in questa lezione.