Czym jest zakres?
Część sekcji Logika i przepływ programu ścieżki Ruby w Coddy. Lekcja 6 z 56.
Masz już za sobą korzystanie z zakresów w pętlach for i wycinanie fragmentów tablic. Zakres to jednak prawdziwy obiekt Ruby, a nie tylko składnia — ma własne metody.
Utwórz jeden za pomocą .. (dwie kropki, z uwzględnieniem końca) lub ... (trzy kropki, bez uwzględniania wartości końcowej):
inclusive = 1..5 # 1, 2, 3, 4, 5
exclusive = 1...5 # 1, 2, 3, 4Przekonwertuj zakres na tablicę za pomocą to_a, aby zobaczyć dokładnie, co obejmuje:
puts (1..5).to_a.inspect # [1, 2, 3, 4, 5]
puts (1...5).to_a.inspect # [1, 2, 3, 4]Zakresy nie dotyczą tylko liczb. Działają ze wszystkim, co ma określoną kolejność, w tym z literami:
puts ("a".."e").to_a.inspect # ["a", "b", "c", "d", "e"]Wyzwanie
PoczątkującyWczytaj dwie liczby całkowite (dwa wiersze danych wejściowych): start i end_value. Wypisz trzy wiersze:
- Przedział domknięty
start..end_valuejako tablicę (użyjinspect) - Przedział otwarty
start...end_valuejako tablicę - Rozmiar przedziału domkniętego
Dla danych wejściowych 1 i 5 wynikiem jest:
[1, 2, 3, 4, 5]
[1, 2, 3, 4]
5Spróbuj swoich sił
start = gets.to_i
end_value = gets.to_i
# TODO: wypisz zakres z uwzględnieniem końca, zakres bez uwzględnienia końca oraz liczbę wartości w zakresie z uwzględnieniem końca
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