Podsumowanie — potok danych
Część sekcji Logika i przepływ programu ścieżki Ruby w Coddy. Lekcja 27 z 56.
Jedno wyzwanie, w którym mały zbiór danych jest przetwarzany przez łańcuch metod Enumerable — tak jak będziesz pisać kod w Ruby w praktyce.
Wyzwanie
ŚredniDana jest tablica orders, której każdy element jest haszem z polami :product, :qty i :price. Wypisz trzy wiersze:
- Łączny przychód ze wszystkich zamówień (suma wartości
qty * price). Użyjmap+reduce(:+)lubsum { ... }. - Liczbę zamówień z
qty >= 3(użyjcount). - Nazwę produktu z zamówienia o najwyższym przychodzie (użyj
max_by).
Dla domyślnej tablicy wynik to:
59
2
milkSpróbuj swoich sił
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: oblicz łączny przychód, liczbę zamówień z qty >= 3 oraz produkt o najwyższym przychodzie
Wszystkie lekcje w sekcji Logika i przepływ programu
1Łańcuchy znaków w szczegółach
Przegląd metod łańcuchów znakówInterpolacja łańcuchów znakówIterowanie po łańcuchach znakówDzielenie i łączeniePowtórka – Tkacz łańcuchów znaków4Bloki, procki i lambdy
Czym jest blok?do..end a nawiasy klamroweSłowo kluczowe yieldParametry blokuProcki i lambdyPodsumowanie — własny iterator7Hashe, część 2
Hash.new z wartościami domyślnymiIterowanie po haszachZagnieżdżone haszeŁączenie i przekształcaniePowtórka — licznik częstotliwości10Projekt – ewidencja uczniów
Przegląd projektuDodawanie ucznia5Potęga Enumerable
Select i RejectŁączenie wywołań mapReduce / Injectcount, all?, any?, none?group_by i partitionsort_by, min_by, max_byPodsumowanie — potok danych8Zaawansowane podejmowanie decyzji
case z klasami i wyrażeniami regularnymiwhen z wieloma wartościamiOperator trójargumentowyInline if / unlessPowtórka – klasyfikator ocenPoćwicz samodzielnie: Kompilator Ruby online