Menu
Coddy logo textTech

Łączenie wywołań map

Część sekcji Logika i przepływ programu ścieżki Ruby w Coddy. Lekcja 22 z 56.

W podstawach poznano map, które tworzy nową tablicę przez przekształcenie każdego elementu. Jego prawdziwa moc ujawnia się, gdy łączysz je z select, reject i innymi podobnymi metodami.

Każda metoda zwraca tablicę, więc wywołanie kolejnej metody na wyniku pozwala kontynuować:

numbers = [1, 2, 3, 4, 5]
result = numbers
  .select { |n| n.odd? }
  .map    { |n| n * 10 }
puts result.inspect   # [10, 30, 50]

Czytaj łańcuch od góry do dołu: zacznij od liczb, pozostaw nieparzyste i pomnóż każdą przez 10. Bez zmiennych tymczasowych i pętli.

Skrót &:method_name działa zawsze, gdy blok wywołuje tylko jedną metodę:

["hi", "yo"].map { |s| s.upcase }   # ["HI", "YO"]
["hi", "yo"].map(&:upcase)         # ["HI", "YO"]  (tak samo)

Ten skrót jest wszędzie w kodzie Ruby. Rozpoznawaj go, gdy go zobaczysz.

challenge icon

Wyzwanie

Łatwy

Wczytaj listę słów rozdzielonych przecinkami. Wypisz w jednym wierszu słowa dłuższe niż 3 znaki, wielkimi literami, połączone za pomocą , .

Zbuduj to jako jeden łańcuch: użyj select, aby wybrać dłuższe słowa, map, aby przekształcić je za pomocą &:upcase, a następnie join.

Dla danych wejściowych hi,hello,yo,coddy,sup wynik to:

HELLO, CODDY

Spróbuj swoich sił

words = gets.chomp.split(",")

# TODO: połącz w łańcuch select + map(&:upcase) + join
quiz iconSprawdź się

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

Poćwicz samodzielnie: Kompilator Ruby online