Riepilogo - Pipeline di dati
Fa parte della sezione Logica e flusso del percorso Ruby di Coddy. Lezione 27 di 56.
Una sfida che fa passare un piccolo set di dati attraverso una catena di metodi Enumerable, proprio come scriverai Ruby nella pratica.
Sfida
MedioL'array orders è dato; ogni elemento è un hash con :product, :qty e :price. Stampa tre righe:
- Il ricavo totale di tutti gli ordini (
qty * price, sommati). Usamap+reduce(:+), oppuresum { ... }. - Il numero di ordini con
qty >= 3(usacount). - Il nome del prodotto dell'ordine con il ricavo più alto (usa
max_by).
Per l'array predefinito, l'output è:
59
2
milkProvalo tu
orders = [
{ product: "apple", qty: 4, price: 2 },
{ product: "bread", qty: 1, price: 3 },
{ product: "milk", qty: 6, price: 4 },
{ product: "cheese", qty: 2, price: 12 }
]
# TODO: ricavo totale, numero di ordini con qty >= 3, prodotto con il ricavo più alto
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