Menu
Coddy logo textTech

Map i collect

Część sekcji Podstawy ścieżki Ruby w Coddy. Lekcja 68 z 88.

Chociaż each świetnie sprawdza się przy wykonywaniu działań na elementach, czasami chcesz przekształcić tablicę w nową. Metoda map (nazywana również collect) robi dokładnie to: tworzy nową tablicę zawierającą wyniki działania bloku na każdym elemencie.

numbers = [1, 2, 3, 4]
doubled = numbers.map { |n| n * 2 }

puts doubled  # Wyświetla: 2, 4, 6, 8

Kluczowa różnica w porównaniu z each polega na tym, że map zwraca nową tablicę z przekształconymi wartościami. Oryginalna tablica pozostaje niezmieniona.

Oto praktyczny przykład konwertowania temperatur ze stopni Celsjusza na Fahrenheita:

celsius = [0, 20, 100]
fahrenheit = celsius.map { |c| c * 9 / 5 + 32 }

puts fahrenheit  # Wyświetla: 32, 68, 212

Możesz też użyć map z ciągami znaków:

names = ["alice", "bob"]
capitalized = names.map { |name| name.capitalize }

puts capitalized  # Wyświetla: Alice, Bob

Metody map i collect są identyczne. Ruby udostępnia obie nazwy, więc możesz użyć tej, która lepiej pasuje do Twojego kodu. Większość programistów Ruby woli map, ponieważ jest krótsza.

challenge icon

Wyzwanie

Łatwy

Odczytaj jeden wiersz danych wejściowych zawierający liczby całkowite oddzielone przecinkami (np. 2,4,6,8,10).

Podziel dane wejściowe na tablicę liczb całkowitych, a następnie użyj metody map, aby utworzyć nową tablicę, w której każda liczba jest podniesiona do kwadratu (pomnożona przez samą siebie).

Wypisz każdy element nowej tablicy z kwadratami w osobnym wierszu.

Na przykład, jeśli dane wejściowe to 2,4,6,8,10, dane wyjściowe powinny wyglądać tak:

4
16
36
64
100

Jeśli dane wejściowe to 1,2,3,4,5, dane wyjściowe powinny wyglądać tak:

1
4
9
16
25

Jeśli dane wejściowe to 3,7,11, dane wyjściowe powinny wyglądać tak:

9
49
121

Jeśli dane wejściowe to 10, dane wyjściowe powinny wyglądać tak:

100

Spróbuj swoich sił

# Wczytaj dane wejściowe rozdzielone przecinkami
input = gets.chomp

# TODO: Napisz swój kod poniżej
# 1. Podziel ciąg wejściowy na tablicę liczb całkowitych
# 2. Użyj metody map, aby podnieść każdą liczbę do kwadratu
# 3. Wypisz każdą liczbę podniesioną do kwadratu w osobnym wierszu
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator Ruby online