Riepilogo - Iteratore personalizzato
Fa parte della sezione Logica e flusso del percorso Ruby di Coddy. Lezione 20 di 56.
Costruisci il tuo metodo iteratore che usa yield, accetta un blocco e restituisce un valore utile, combinando tutto ciò che hai imparato in questo capitolo.
Sfida
MedioDefinisci un metodo chiamato each_even che accetta un array numbers e passa al suo blocco ogni numero pari dell’array (saltando del tutto i numeri dispari).
Quindi leggi un elenco di numeri interi separati da virgole, chiama each_even su di esso con un blocco che stampa "Even: <n>" per ogni valore passato e infine stampa:
Done: <count>Dove count indica quanti numeri pari sono stati passati.
Per l’input 1,2,3,4,5,6, l’output è:
Even: 2
Even: 4
Even: 6
Done: 3Provalo tu
# TODO: definisci each_even(numbers) che restituisca uno alla volta tutti i numeri pari
numbers = gets.chomp.split(",").map(&:to_i)
count = 0
# TODO: chiama each_even con un blocco che stampi "Even: <n>"
# e incrementi count per ogni valore restituito
puts "Done: #{count}"
Tutte le lezioni di Logica e flusso
1Le stringhe in dettaglio
Panoramica dei metodi delle stringheInterpolazione di stringheIterare sulle stringheDividere e unireRiepilogo - Tessitore di stringhe4Blocchi, Proc e Lambda
Che cos’è un Block?do..end vs parentesi graffeLa keyword yieldParametri del BlockProc e LambdaRiepilogo - Iteratore personalizzato7Hash in Ruby - Parte 2
Hash.new con valori predefinitiIterare sugli hashHash annidatiUnire e trasformareRipasso - Contatore di frequenza10Progetto - Registri degli studenti
Panoramica del progettoAggiungere uno studente2Intervalli
Che cos'è un intervallo?Metodi degli intervalliIntervalli in Case / WhenRiepilogo - Esercitarsi con gli intervalli5La potenza di Enumerable
Select e RejectConcatenare MapReduce / Injectcount, all?, any?, none?group_by e partitionsort_by, min_by, max_byRiepilogo - Pipeline di datiEsercitati da solo: Compilatore Ruby online