Iteratore each
Fa parte della sezione Fondamenti del percorso Ruby di Coddy. Lezione 65 di 88.
Ruby offre un modo più elegante per scorrere gli array rispetto all’uso dei cicli for o while. L’iteratore each è il modo preferito in Ruby per elaborare ogni elemento di una raccolta.
Ecco la sintassi di base:
fruits = ["apple", "banana", "cherry"]
fruits.each do |fruit|
puts fruit
endQuesto stampa ogni frutto su una riga separata. La variabile tra le barre (|fruit|) è chiamata variabile di blocco. Contiene temporaneamente ogni elemento mentre l'iteratore scorre l'array.
Per i blocchi su una sola riga, puoi usare le parentesi graffe invece di do...end:
numbers = [1, 2, 3]
numbers.each { |n| puts n * 2 }Il metodo each è potente perché puoi eseguire qualsiasi operazione su ciascun elemento. Ecco un esempio che calcola un totale progressivo:
prices = [10, 25, 15]
total = 0
prices.each do |price|
total += price
end
puts total # Restituisce in output: 50A differenza dei cicli for, la variabile di blocco in each rimane circoscritta al blocco, mantenendo il codice più pulito e meno soggetto a comportamenti imprevisti.
Sfida
FacileLeggi una singola riga di input contenente interi separati da virgole (ad es., 4,7,2,9,5).
Dividi l’input in un array di interi, quindi usa l’iteratore each per:
- Stampare ogni numero moltiplicato per 3 su una propria riga
- Calcolare la somma di tutti i numeri e stamparla dopo il ciclo
Prima del ciclo, usa una variabile inizializzata a 0 per accumulare la somma mentre iteri sull’array.
Ad esempio, se l’input è 4,7,2,9,5, l’output dovrebbe essere:
12
21
6
27
15
Sum: 27Se l’input è 10,20,30, l’output dovrebbe essere:
30
60
90
Sum: 60Se l’input è 1,2,3,4, l’output dovrebbe essere:
3
6
9
12
Sum: 10Se l’input è 5, l’output dovrebbe essere:
15
Sum: 5Provalo tu
# Leggi gli interi separati da virgole
input = gets.chomp
# Dividi l'input in un array di interi
numbers = input.split(",").map(&:to_i)
# Inizializza la variabile sum
sum = 0
# TODO: Scrivi il tuo codice qui sotto
# Usa l'iteratore each per:
# 1. Stampare ogni numero moltiplicato per 3
# 2. Aggiungere ogni numero alla variabile sum
# Stampa la somma finale
puts "Sum: #{sum}"Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Riepilogo - Logica sempliceOperatori logici Parte 3Operatori logici Parte 47Calcolatore per dividere il conto
Messaggio di benvenutoAcquisire input dall'utente10FizzBuzz con un colpo di scena
Panoramica del giocoIl metodo FizzBuzz2Variabili e tipi di dato
Numeri e variabiliTipo di dato stringaTipo di dato booleanoTipo di dato SymbolVerifica dei tipi di datoConvenzioni di denominazioneRiepilogo - Creazione di variabili5Strutture decisionali
Istruzione ifIf-ElseRipasso - Calcolatrice sempliceIf-Else annidatoIstruzione unless8Cicli
Ciclo for con intervalliCiclo whilebreaknextRiepilogo - FattorialeCiclo timesCiclo untilCicli annidatiRiepilogo - Input dinamico3Operatori, parte 1
Operatori aritmeticiOperatore moduloScorciatoie aritmeticheRipasso: matematica sempliceOperatori di confronto6Input/Output di base
Output con putsOutput con print e pOutput con variabiliInput con getsMetodo chompConversione di tipoRipasso - Calcolatore dell'etàRipasso - Vero o falsoEsercitati da solo: Compilatore Ruby online