Menu
Coddy logo textTech

Metodi degli intervalli

Fa parte della sezione Logica e flusso del percorso Swift di Coddy. Lezione 9 di 56.

Gli intervalli sono vere e proprie Collection, quindi offrono gli stessi strumenti che usi sugli array.

contains, count, first e last funzionano tutti direttamente:

let r = 1...10
print(r.contains(5))            // true
print(r.count)                  // 10
print(r.first!, r.last!)        // 1 10

Anche la maggior parte dei metodi degli array che hai usato funziona. filter restituisce un array perché il risultato del filtraggio di un intervallo non è a sua volta un intervallo:

let evens = (1...10).filter { $0 % 2 == 0 }
print(evens)                    // [2, 4, 6, 8, 10]

Lo stesso vale per reduce: gli intervalli ce l'hanno e ti servirà per calcolare rapidamente somme e prodotti.

challenge icon

Sfida

Facile

Leggi due numeri interi (due righe): n e target. Considera l'intervallo chiuso 1...n come il tuo insieme di dati.

Stampa tre righe:

  1. true quando target è nell'intervallo, altrimenti false
  2. Il prodotto di tutti i valori nell'intervallo (n!: fattoriale). Usa reduce.
  3. I valori nell'intervallo che sono multipli di 3, uniti con , (oppure una riga vuota se nessuno soddisfa il criterio). Usa filter.

Per l'input 5 / 3, l'output è:

true
120
3

Provalo tu

let n = Int(readLine()!)!
let target = Int(readLine()!)!
let r = 1...n

// TODO: contains(target), prodotto tramite reduce, multipli di 3 tramite filter
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Playground Swift