Swift Academy · Lezione

Ordinamento, ricerca e slicing

Utilizzi sorted(), sort(), firstIndex(of:), prefix, suffix e ArraySlice.

Lezione 2 di 412 passaggi

Ordinamento, ricerca e slicing è una lezione Swift Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Swift Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Swift Academy include 4 lezioni in totale.

Introduzione

Gli array Swift includono un ricco insieme di algoritmi per ordinare, cercare e suddividere gli elementi. Imparare a utilizzarli riduce i cicli scritti manualmente e produce codice più chiaro e veloce.

sorted() e sort()

```swift let nums = [3,1,4,1,5,9] let sorted = nums.sorted() // new array, nums unchanged var mutable = [3,1,4] mutable.sort() // in-place sort ``` `sorted()` funziona con gli array dichiarati con `let`; `sort()` richiede `var`.

Ordine di ordinamento personalizzato

```swift let words = ["banana","apple","cherry"] let alpha = words.sorted() // ascending let rev = words.sorted(by: >) // descending let byLen = words.sorted { $0.count < $1.count } // by length ```

first(where:) e last(where:)

```swift let nums = [4, 7, 2, 9, 1] let first = nums.first { $0 > 5 } // Optional(7) let last = nums.last { $0 > 5 } // Optional(9) ``` È una soluzione migliore rispetto a un ciclo manuale: si interrompe al primo elemento corrispondente.

Ricerca binaria con partition(by:)

La libreria standard di Swift utilizza partition per una suddivisione efficiente in O(n): ```swift var nums = [3, 1, 4, 1, 5, 9, 2] let pivotIdx = nums.partition { $0 >= 5 } // nums is now [...<5 values..., 5,9] and pivotIdx is the split point ```

Sezioni degli array: prefix e suffix

```swift let arr = [10,20,30,40,50] let first3 = arr.prefix(3) // ArraySlice [10,20,30] let last2 = arr.suffix(2) // ArraySlice [40,50] let mid = arr[1...3] // ArraySlice [20,30,40] ``` Le sezioni sono viste: condividono lo spazio di archiviazione con l'array originale.

Conversione di una sezione in un array

```swift let slice = arr.prefix(3) let copy = Array(slice) // independent [Int] copy ``` Converta sempre una sezione in `Array` se deve conservarla oltre la durata di vita dell'array di origine.

drop e dropFirst/dropLast

```swift let arr = [1,2,3,4,5] let d1 = arr.dropFirst() // [2,3,4,5] let d2 = arr.dropLast(2) // [1,2,3] let d3 = arr.drop { $0 < 3 } // [3,4,5] — drop while condition holds ```

min() e max()

```swift let scores = [88, 95, 70, 82] print(scores.min()!) // 70 print(scores.max()!) // 95 let minByLen = ["cat","elephant","ox"].min { $0.count < $1.count } // "ox" ```

contains e allSatisfy

```swift let nums = [2, 4, 6, 8] print(nums.allSatisfy { $0 % 2 == 0 }) // true print(nums.contains { $0 > 10 }) // false ``` `allSatisfy` e `contains(where:)` interrompono la valutazione appena possibile.

Verifica rapida

Quale metodo restituisce i primi N elementi di un array come `ArraySlice`?

Riepilogo

Concetti chiave: • `sorted()` → nuovo array; `sort()` → modifica l'array sul posto • `first(where:)` / `last(where:)` — trovano gli elementi • `prefix`, `suffix`, `[range]` — suddivisione in sezioni senza copia • `drop(while:)`, `dropFirst`, `dropLast` — rimuovono elementi dalle estremità • `min()`, `max()`, `allSatisfy`, `contains(where:)` Successivo: map, filter e reduce.
Gratis per iniziare

Impara Swift con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
122
Lezioni
409

Domande Frequenti

La lezione «Ordinamento, ricerca e slicing» è gratuita?

Sì — il testo completo di «Ordinamento, ricerca e slicing» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Swift Academy, passa a CoddyKit PRO. Il corso Swift Academy include 4 lezioni in totale.

Cosa imparerò in «Ordinamento, ricerca e slicing»?

Utilizzi sorted(), sort(), firstIndex(of:), prefix, suffix e ArraySlice. Eserciti Swift Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Swift Academy?

Non è richiesta alcuna esperienza precedente. Swift Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Ordinamento, ricerca e slicing»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Swift Academy?

Sì. Ogni lezione Swift Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Creazione e modifica degli array
  2. Ordinamento, ricerca e slicing
  3. Map, filter e reduce sugli array
  4. Array 2D e collezioni annidate
← Torna a Swift Academy