Home Testo Corso Swift Introduzione alle Array

Introduzione alle Array

961
0
Array

Introduzione alle Array

Nella scorsa lezione abbiamo visto come conservare le informazioni utilizzando le costanti e variabili. Ora vediamo un sistema più complesso parlando array.

Cosa è un Array

Nella scorsa lezione, come detto, hai visto come conservare in modo elementare le informazioni  dove ogni costante/variabile è indipendete dall’altra e trasporta una precisa informazione. E se volessi conservare delle informazioni dello stesso argomento?

Molte applicazioni consento di conservare punteggi delle partite, il proprio peso, temperatura ecc ecc. Conservare queste informazioni in var e let sarebbe molto difficile e costretti a creare un numero non definito di variabili.

In questa situazione ci vengo incontro gli Array o Dizionari(argomento delle prossima lezione) che ci permettono di conservare le informazioni in un’unica variabile o costante di tipo Array o Dizionario.

Puoi considerare un Array come un treno composto da possibili infiniti vagoni dove ogni vagone può contenere una informazione accessibile tramite un indice.

Per creare una array devi creare una variabile o costante racchiudendo i valori tra parentesi quadre.
Anche qui come visto per le variabili/Costanti puoi creare una array in modo esplicito o implicito.

// Modo Implicito
var array = [10,34,54,67]

// Modo Esplicito
var array = [Int]() // Array vuota di tipo Int

// Assegno valore alla posizione 0 e alla posizione 1
array.append(10)
array.append(34)
ecc ecc

Devi considerare che in informatica il conteggio di qualunque cosa inizia dal numero 0.

Nel primo esempio ho creato una array in modo implicito assegnado subito il valore dei singoli vagoni del treno quindi ho detto al compilarore,  guarda, io ho creato una array di tipo int e assegno questi valori a ogni posizione, posizione o = 10, posizione 1 = 34, posizione 2 = 54 e posizione 3 = 67.

Nel secondo esempio invece ho detto al compilatore, guarda, ho creato un array di tipo Int ma in questo momento è vuoto (modo esplicito) poi successivamente gli ho detto ora inserisco tramite il metodo .append () che serve per inserire un valore in coda alla array (in questo caso vuota) i valori nella posizione 0 = 10, posizione 1 = 34 ecc ecc.

immagine_posizione_array

Ora prima di vedere le operazione che si possono fare su un’array facciamo il punto della situazione.

  • Un’array e una variabile/costante che può contenere più valori
  • I dati di una array vanno inseriti tra parentesi quadre []
  • 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 array con lo stesso nome
  • Puoi creare un’array in modo esplicito o implicito
  • Un’array ha un indice che parte da 0

Operazioni sugli Array

Vediamo ora come interagire con l’array, aggiungere, modificare, leggere, cancellare un dato o azzerare l’intera arrary.

Leggere

Per leggere un array basta richiamarla utilizzando l’indice della cella che vuoi leggere. Puoi leggere l’intera array ma lo vedremo quanto parleremo dei cicli.

Esempio stampo il valore nella posizione 1, print (array[1]) quindi 34.

Modificare

Per modificare il valore in una posizione basta richiamarla e assegnare un nuovo valore ovviamente solo se questa array è di tipo var perchè come tu sai solo le variabili si posso modificare nel tempo.

Esempio modifico il valore nella posizione 1 array[1] = 15 quindi il suo valore cambierà da 34 a 15.

Aggiungere

Come già accennato sopra possimo aggiungere un valore alla coda dell’array con il metodo .append()

Per esempio voglio aggiungere 20 alla coda dell’array quindi scriverò array.append(20), ora l’array sarà composta da 5 elementi dove nella posizione 4 troveremo il valore 20.

Se invece voglio inserire un valore in una determinata posizione utilizzo questo metodo array.insert(20, at: 2). In questo caso sto dicendo al compilatore inserisci il valore 20 alla posizione 2 di questa array.

Cancellare

Per cancellare l’intera Array basta assegnare le parentesi quadre senza nessun valore quindi array = []

Per cancellare un valore in una determinata posizione utilizzo il metodo array.remove(at:2). In questo caso sto dicendo al compilatore eliminta il valore alla posizione 2.

Per cancellare l’ultimo valore di una array utilizzo il metodo array.removeLast(). In questo modo elimino l’ultimo valore dell’array.

Contare elementi di una Array e vedere se una array è vuota

Ho lasciato questi 2 elementi per ultimo perchè essi risultano molto importati per gestire gli array.
Come ho detto gli array hanno un indice, questo indice ha un valora dato dal conteggio degli elementi che compongo l’array stessa partendo dalla posizione 0, come faccio ha sapere però il suo valore? se abbiamo una array composta da array = [2,45,67,89] posso dire che l’array è compasta da 4 elementi nelle posizioni 0, 1, 2, 3 ma come faccio a risalire al valore 4? Semplice utilizzo il seguente metodo array.count infatti grazie a questo posso sapere che questa array a 4 elementi. Perchè è importate? E’ importate perchè se io richiamo una valore con un indice che non esiste il sistema (applicazione) va i crash dicendo che l’array è fuori range.

Infatti se provi nel playground a richiamare un elemento alla posizione 4 di questa array il sistema di notifica il seguente errore: fatal error: Index out of range questo perchè alla posizione 4 non c’è nessuno elemento. Ho utilizzato la posizione 4 di proposito perchè potresti dire ma l’array è composta da 4 elementi perchè da errore? Da errore perchè e ribadisco, si, l’array ha 4 elementi ma il suo indice parte da 0 quindi 0, 1, 2, 3.

In questo modo posso assegnare a una variabile il valore massimo che può assumere l’indice di una array facendo var indice = array.count – 1, il valore di indice sarà 3 che guarda caso corrisponde al valore max che può assumere l’indice di quella array.

Un altro metodo  è array.isEmpty, utilizzandolo potrai sapere subito se una array ha degli elementi al suo interno infatti in questo modo stai dicendo al compilatore: questo array è vuoto? il compilatore ti rispondere con un true(si) o un false(no) che come sai è un valore bool spiegato nella precedente lezione.

Per esempio anche se non abbiamo ancora trattato le condizioni posso fare un controllo e decidere di stampare un testo in base al risultato di questo controllo tipo

if array.isEmpty {

print("Array vuota")
}
else{
print ("Array piena con \(array.count) elementi")
}

in pratica sto dicendo se l’array è vuota stampa il messaggio “Array vuota” se piena invece stampa il messaggio “Array piena con 4 elementi”.

Riassunto

var miaArray = [10,34,54,67] // Creo Array di tipo Int con 4 elementi

//LEGGO

print(miaArray[2])
// Stampo il valore alla posisiozne numero 3 con indice 2
// risultato 54

//MODIFICO
miaArray[2] = 85
//cambio il valore alla posizione 3 con indice 2
//Il valore cambia da 54 a 85

//AGGIUNGO
//alla fine dell'array
miaArray.append(20)
// Aggiungo il valore 20 alla fine dell'array

// In una posizione specifica dell'array
miaArray.insert(20, at:2)
// Inserisco alla posizione 3 con indice 2 il valore 20

//CANCELLO
// Intera array
miaArray = []
// Cancellata intera array, nessun elemento presente

// in una posizione specifica dell'array
miaArray.remove(at: 2)
print(miaArray)
// Cancellato il valore alla posizione 3 con indice 2
// Valore cancellato 54

// Ultimo valore
miaArray.removeLast()
print(miaArray)
//Cancellato ultimo valore dell'array
// Valore Cancellato 67

// STAMPO IL NUMERO TATALE DEI VALORI E L'INDICE 
// Totale valori
print(miaArray.count)

// Indice Massimo
print(miaArray.count - 1)

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