Operatori di sequenza
Fa parte della sezione Fondamenti del percorso Swift di Coddy. Lezione 75 di 86.
Swift fornisce utili proprietà e metodi integrati che ti permettono di raccogliere rapidamente informazioni sugli array senza scrivere cicli. Questi operatori di sequenza ti aiutano a eseguire calcoli comuni con una quantità minima di codice.
La proprietà count restituisce il numero di elementi in un array:
let scores = [85, 92, 78, 90]
print(scores.count) // 4Per gli array numerici, Swift offre metodi per trovare i valori più piccoli e più grandi. I metodi min() e max() restituiscono valori opzionali, poiché un array vuoto non ha un minimo o un massimo:
let temperatures = [72, 68, 75, 80, 65]
if let lowest = temperatures.min() {
print(lowest) // 65
}
if let highest = temperatures.max() {
print(highest) // 80
}Per calcolare il totale di tutti gli elementi, usa il metodo reduce. Combina tutti i valori partendo da un valore iniziale:
let prices = [10, 20, 30]
let total = prices.reduce(0, +)
print(total) // 60Il valore 0 è il valore iniziale e + indica a Swift di aggiungere ogni elemento al totale progressivo. Combinando questi operatori, puoi calcolare facilmente una media:
let grades = [85, 90, 78, 92]
let average = grades.reduce(0, +) / grades.count
print(average) // 86Sfida
FacileScrivi una funzione analyzeScores che accetti scores e restituisca una stringa di riepilogo con le statistiche dell'array.
Usa gli operatori di sequenza per calcolare il conteggio, il minimo, il massimo e la media dei punteggi, quindi formattali in un'unica stringa di riepilogo.
Logica:
- Ottieni il conteggio totale degli elementi usando
count - Trova il valore minimo usando
min() - Trova il valore massimo usando
max() - Calcola la somma usando
reduce(0, +)e dividila per il conteggio per ottenere la media - Restituisci una stringa formattata con tutte le statistiche
Parametri:
scores([Int]): un array di punteggi interi (è garantito che contenga almeno un elemento)
Valore restituito: una stringa formattata contenente le statistiche (String). Formato: "Count: X, Min: X, Max: X, Avg: X"
Esempio: se scores è [85, 90, 78, 92], la funzione dovrebbe restituire "Count: 4, Min: 78, Max: 92, Avg: 86".
Nota: la media deve essere calcolata usando la divisione intera (senza cifre decimali).
Provalo tu
func analyzeScores(scores: [Int]) -> String {
// Scrivi il codice qui
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori – Parte 1
Operatori aritmeticiOperatore moduloAssegnazione compostaRiepilogo - Matematica sempliceOperatori di confronto7I/O di base
Funzione printInterpolazione di stringheInput con ReadLineConversione di tipoRipasso - Fino a 120Ripasso - Vero o falso10Funzioni
Dichiarare una funzioneParametri e argomentiValori restituitiEtichette degli argomentiRiepilogo - Funzione SigmaRiepilogo - Funzione di validazioneValori predefiniti13Iterare sulle sequenze
Iterare sugli elementiIl metodo enumerateIterare sulle stringhe P1Iterare sulle stringhe P22Variabili
Let vs VarAnnotazioni di tipoNumeriStringaBooleanoConvenzioni di denominazioneRiepilogo - Inizializzare le variabili5Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Riepilogo - Logica sempliceOperatori logici Parte 3Operatore ternario8Calcolatore per dividere il conto
Messaggio di benvenutoAcquisire i dati11FizzBuzz con una variante
Panoramica del giocoLa funzione FizzBuzz14Array avanzati
Slicing degli array Parte 1Slicing degli array Parte 2Operatori di sequenzaIl metodo contains3Valori opzionali
Cosa sono i valori opzionaliEstrazione del valore con if letGuard letOperatore di coalescenza nilRiepilogo - Estrazione sicura del valore6Decisioni
Istruzione ifIf - ElseRipasso - Calcolatrice sempliceIstruzione switchSwitch con intervalli9Cicli
Ciclo for-inCiclo whileCiclo repeat-whileBreakContinueRipasso - FattorialeIntervalli nei cicliCiclo annidatoRipasso - Input dinamicoEsercitati da solo: Playground Swift