Swift Arrays: come usarlo e perché? (Con esempi)

In questo tutorial imparerai a conoscere gli array, a crearli, ad accedere ai valori di un array e ad alcune operazioni comuni in array.

Nel precedente articolo Swift Data Types, abbiamo imparato a creare variabili / costanti di alcuni tipi di dati che possono contenere un singolo valore.

Ma cosa succede se vogliamo memorizzare più valori dello stesso tipo di dati. Usiamo qualcosa chiamato Array in Swift.

Cos'è un array?

Un array è semplicemente un contenitore che può contenere più dati (valori) di un tipo di dati in un elenco ordinato, cioè ottieni gli elementi nello stesso ordine in cui hai definito gli elementi nell'array.

Un array può memorizzare valori di qualsiasi tipo di dati Int, ad esempio String, classe, ecc.

Come dichiarare un array in Swift?

È possibile creare un array vuoto specificando il tipo di dati tra parentesi quadre ().

Ricorda, devi includere il tipo tra parentesi quadre, altrimenti Swift lo tratterà come un normale tipo di dati e potrai memorizzare solo un singolo valore al suo interno.

Esempio 1: dichiarazione di un array vuoto

 let emptyIntArr:(Int) = () print(emptyIntArr) 

Quando esegui il programma, l'output sarà:

 ()

Nel programma sopra, abbiamo dichiarato una costante emptyIntArr che può memorizzare un array di numeri interi e inizializzata con valori 0.

O

Puoi anche definire un array vuoto come di seguito:

 let emptyIntArr:Array = Array() print(emptyIntArr) 

O

Poiché swift è un linguaggio di inferenza del tipo, puoi anche creare un array direttamente senza specificare il tipo di dati, ma devi inizializzare con alcuni valori in modo che il compilatore possa dedurre il suo tipo come:

Esempio 2: dichiarazione di un array con alcuni valori

 let someIntArr = (1, 2, 3, 4, 5, 6, 7, 8, 9) print(someIntArr) 

Quando esegui il programma, l'output sarà:

 (1, 2, 3, 4, 5, 6, 7, 8, 9)

Nel programma precedente, abbiamo dichiarato una costante someIntArr che può memorizzare array di Integer senza specificare esplicitamente il tipo. Inoltre, abbiamo inizializzato un array con 1, 2, 3, 4, 5, 6, 7, 8, 9 valori.

Esempio 3: dichiarazione di un array contenente il numero specificato di un singolo valore ripetuto

Puoi anche ripetere un valore un determinato numero di volte per formare un array in Swift. Questo viene fatto usando l'inizializzatore di array con ripetizione e conteggio.

 let arrWithRepeatingValues = Array(repeating: "Hello, World", count: 4) print(arrWithRepeatingValues) 

Quando esegui il programma, l'output sarà:

 ("Hello, World", "Hello, World", "Hello, World", "Hello, World")

Nel programma sopra, abbiamo definito una costante arrWithRepeatingValues ​​che memorizza un array di stringhe Hello, World e ripete lo stesso valore per 4 volte come specificato nel conteggio.

Nota: in Swift, non è possibile creare array di dimensioni a lunghezza fissa come in altri linguaggi di programmazione. Array a lunghezza fissa significa che l'array non può avere più elementi di quelli definiti durante l'inizializzazione.

Come vengono memorizzati i valori nell'array?

Supponiamo di avere una costante che può memorizzare un array di stringhe come di seguito:

 let intArr = (21, 34, 54, 12)

La rappresentazione grafica di come i valori vengono memorizzati nell'array può essere mostrata sotto:

Tutti gli array che crei iniziano con l'indice 0. Il primo elemento è memorizzato nell'indice 0, il secondo nell'indice successivo (1) e così via.

Come accedere agli elementi dell'array in Swift?

È possibile accedere agli elementi di un array utilizzando la sintassi del pedice, ovvero è necessario includere l'indice del valore a cui si desidera accedere tra parentesi quadre immediatamente dopo il nome dell'array.

Supponiamo di aver dichiarato un array intArr come sopra. Il primo elemento è intArr (0), il secondo elemento è intArr (1) e così via.

Esempio 4: accesso agli elementi di un array

 let intArr = (21, 34, 54, 12) print(intArr(0)) print(intArr(1)) print(intArr(2)) print(intArr(3)) 

Quando esegui il programma, l'output sarà:

 21 34 54 12 

È inoltre possibile accedere agli elementi di un array utilizzando i cicli for-in. Per saperne di più, consulta il ciclo Swift For-in.

Come modificare / aggiungere elementi dell'array in Swift?

È possibile modificare gli elementi di un array utilizzando la sintassi del pedice e l'operatore di assegnazione, ovvero è necessario includere l'indice del valore che si desidera aggiornare tra parentesi quadre dopo il nome dell'array seguito dall'operatore di assegnazione e dal nuovo valore.

Esempio 5: modifica di elementi di un array

 var intArr = (21, 34, 54, 12) intArr(0) = 12 intArr(1) = 42 intArr(2) = 45 intArr(3) = 21 print(intArr) 

Quando esegui il programma, l'output sarà:

 (12, 42, 45, 21)

Puoi anche modificare tutti gli elementi dell'array con nuovi valori come di seguito:

Esempio 6: modifica di un array nel suo insieme

 var intArr = (21, 34, 54, 12) intArr = (1,2,3) print(intArr) 

Quando esegui il programma, l'output sarà:

 (1, 2, 3)

Tuttavia, per aggiungere un nuovo elemento a un array esistente, non è possibile utilizzare la sintassi del pedice. Se lo fai, ti ritroverai con un errore. Non puoi fare qualcosa del genere:

Esempio 7: aggiunta di un nuovo elemento in un array utilizzando la sintassi del pedice (non funziona)

 var intArr = (21, 34, 54, 12) intArr(4) = 10 

Quando esegui il programma, l'output sarà:

 errore irreversibile: indice fuori intervallo

Il programma precedente restituisce un errore durante l'assegnazione di un nuovo elemento a un array intArr. Questo perché intArr non ha allocato memoria aggiuntiva per l'indice 4 e non può memorizzare il valore specificato.

Per inserire correttamente un nuovo elemento in un array, usiamo il append()metodo dell'array . append()è descritto nella sezione seguente.

Alcune utili funzioni e proprietà dell'array incorporate

1. isEmpty

Questa proprietà determina se un array è vuoto o meno. Restituisce truese un array non contiene alcun valore, altrimenti restituisce false.

Esempio 8: come funziona isEmpty?

 let intArr = (21, 34, 54, 12) print(intArr.isEmpty) 

Quando esegui il programma, l'output sarà:

 falso

2. primo

Questa proprietà viene utilizzata per accedere al primo elemento di un array.

Esempio 9: come funziona inizialmente?

 let intArr = (21, 34, 54, 12) print(intArr.first) 

Quando esegui il programma, l'output sarà:

 Opzionale (21)

Allo stesso modo, puoi usare la lastproprietà per accedere all'ultimo elemento di un array.

3. append

La funzione append viene utilizzata per inserire / accodare elementi alla fine dell'array.

Esempio 10: come funziona append?

 var intArr = (21, 34, 54, 12) intArr.append(32) print(intArr) 

Quando esegui il programma, l'output sarà:

 (21, 34, 54, 12, 32)

Puoi anche aggiungere il contenuto di un array a un altro array come:

 var firstArr = (1,2,3,4) var secondArr = (5,6,7,8) firstArr.append(contentsOf: secondArr) print(firstArr) 

Quando esegui il programma, l'output sarà:

 (1, 2, 3, 4, 5, 6, 7, 8)

4. inserire

Questa funzione viene utilizzata per inserire / aggiungere elementi all'indice specifico dell'array.

Esempio 11: come funziona l'inserto?

 var intArr = (21,34,54,12) intArr.insert(22, at: 1) print(intArr) 

Quando esegui il programma, l'output sarà:

 (21, 22, 34, 54, 12)

Allo stesso modo puoi anche usare la removeproprietà per rimuovere l'elemento all'indice specificato.

5. rimuovere

Questa funzione rimuove e restituisce il valore specificato nella posizione specificata dall'array.

Esempio 12: come funziona la rimozione?

 var strArr = ("ab","bc","cd","de") let removedVal = strArr.remove(at: 1) print("removed value is (removedVal)") print(strArr) 

Quando esegui il programma, l'output sarà:

 il valore rimosso è bc ("ab", "cd", "de") 

Allo stesso modo, puoi anche usare funzioni come removeFirstrimuovere il primo elemento di un array, removeLastrimuovere l'ultimo elemento di un array e removeAllsvuotare un array.

6. invertito

Questa funzione restituisce gli elementi dell'array in ordine inverso.

Esempio 13: come funziona reversed ()?

 var intArr = (21,22,23,24) let reversedArr = Array(intArr.reversed()) print(reversedArr) 

Quando esegui il programma, l'output sarà:

 (24, 23, 22, 21)

7. contare

Questa proprietà restituisce il numero totale di elementi in una matrice.

Esempio 14: count

 let floatArr = (10.2,21.3,32.0,41.3) print(floatArr.count) 

Quando esegui il programma, l'output sarà:

 4

Cose da ricordare

Durante l'utilizzo della sintassi del pedice per accedere agli elementi di un array in Swift, devi assicurarti che il valore si trovi nell'indice, altrimenti si verificherà un arresto anomalo del runtime. Vediamo questo nell'esempio:

 let intArr = (21, 34, 54, 12) print(intArr(-1)) 

Quando esegui il programma, l'output sarà:

 errore irreversibile: indice fuori intervallo

Nel programma sopra, non c'è alcun valore nell'indice -1 . Quindi, quando si tenta di accedere al valore nell'indice, si verificherà un arresto anomalo del runtime.

Per evitare ciò, trova prima l'indice dell'elemento che stai tentando di rimuovere. E quindi rimuovere l'elemento all'indice come di seguito:

 var intArr = (21, 34, 54, 12) if let index = intArr.index(of: 34) ( print("found index") let val = intArr.remove(at: index) print(val) ) 

Quando esegui il programma, l'output sarà:

 trovato indice 34 

Articoli interessanti...