Metody zakresów
Część sekcji Logika i przepływ programu ścieżki Ruby w Coddy. Lekcja 7 z 56.
Zakresy mają przydatne metody, dzięki którym nie musisz ręcznie pisać pętli.
include? sprawdza, czy wartość mieści się w zakresie:
range = 1..10
puts range.include?(5) # true
puts range.include?(11) # falsemin, max i size działają bezpośrednio na zakresach:
puts (1..10).min # 1
puts (1..10).max # 10
puts (1..10).size # 10step iteruje po zakresie, przeskakując o stałą wartość — przydatne, gdy nie chcesz uwzględniać każdej wartości:
(0..10).step(2) do |n|
puts n
end
# 0, 2, 4, 6, 8, 10A each działa tak samo jak w przypadku tablic:
(1..3).each { |n| puts n * n }
# 1
# 4
# 9Wyzwanie
ŁatwyOtrzymujesz zakres domknięty i listę typowanych liczb. Oceń typy i podsumuj zakres.
Wczytaj dwa wiersze:
- Dwie liczby całkowite oddzielone spacją:
startiend_value - Lista typowanych liczb całkowitych oddzielonych przecinkami
Używając zakresu start..end_value, wypisz:
Hit: <n>, gdziento liczba typów mieszczących się w zakresie (użyjinclude?)Span: <n>, gdzientosizezakresuMultiples of 3 sum: <n>, gdziento suma wszystkich wielokrotności 3 w zakresie (użyjstep, zaczynając od pierwszej wielokrotności 3 równej lub większej niżstart)
Dla danych wejściowych 1 10 w pierwszym wierszu i 3,5,11,7,-2 w drugim, wynik to:
Hit: 3
Span: 10
Multiples of 3 sum: 18(Trafienia: 3, 5, 7. Wielokrotności 3 w zakresie 1..10: 3+6+9 = 18.)
Spróbuj swoich sił
start, end_value = gets.chomp.split.map(&:to_i)
guesses = gets.chomp.split(",").map(&:to_i)
# TODO: Liczba trafień za pomocą include?, rozpiętość za pomocą size, suma wielokrotności 3 za pomocą step
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