Parametry bloku
Część sekcji Logika i przepływ programu ścieżki Ruby w Coddy. Lekcja 18 z 56.
Zmienne między pionowymi kreskami, |x|, |x, y|, to parametry bloku. Nazywają wartości, które metoda przekazuje do bloku.
Niektóre metody przekazują jedną wartość, inne kilka. each przekazuje po jednym elemencie naraz:
[10, 20, 30].each { |n| puts n }each_with_index przekazuje dwie wartości: element i jego indeks:
["a", "b", "c"].each_with_index do |letter, i|
puts "#{i}: #{letter}"
end
# 0: a
# 1: b
# 2: cPodczas iterowania po hashu parametrami bloku są klucz i wartość:
{ a: 1, b: 2 }.each do |key, value|
puts "#{key} = #{value}"
endLiczba i kolejność parametrów bloku zależą od tego, co zwraca metoda. W razie wątpliwości sprawdź dokumentację lub wypróbuj jeden parametr i zobacz, co otrzymasz.
Wyzwanie
ŁatwyDany jest hash scores. Iteruj po nim za pomocą each_with_index w postaci to_a, aby mieć dostęp zarówno do pary (nazwa, punkty), jak i jej pozycji. Wypisz po jednym wierszu dla każdego wpisu w tym formacie:
<rank>. <name> - <points>Gdzie rank zaczyna się od 1 (a nie od 0).
Dla domyślnego hasha wynik to:
1. Alice - 90
2. Bob - 85
3. Cara - 78Spróbuj swoich sił
scores = { "Alice" => 90, "Bob" => 85, "Cara" => 78 }
# TODO: wypisz "<rank>. <name> - <points>" dla każdego wpisu, numeracja zaczyna się od 1
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
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