Menu
Coddy logo textTech

do..end a nawiasy klamrowe

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

Ruby oferuje dwa sposoby zapisu bloku. Oznaczają to samo, ale każdy z nich ma swoje preferowane zastosowanie.

do...end służy do tworzenia wieloliniowych bloków:

[1, 2, 3].each do |n|
  doubled = n * 2
  puts "#{n} -> #{doubled}"
end

Nawiasy klamrowe { ... } służą do jednowierszowych bloków, krótkich i mających postać wyrażenia:

[1, 2, 3].each { |n| puts n * 2 }

Te dwa zapisy mają nieco inny priorytet, ale zasada, którą warto zapamiętać, dotyczy stylu: nawiasy klamrowe dla jednolinijkowych instrukcji, do...end dla wielolinijkowych.

Obie formy mogą zwracać wartość. Ostatnie wyrażenie bloku jest tym, co zostaje przekazane z powrotem metodom takim jak map:

[1, 2, 3].map { |n| n * 10 }    # [10, 20, 30]
[1, 2, 3].map do |n|
  n * 10
end                              # [10, 20, 30]
challenge icon

Wyzwanie

Łatwy

Odczytaj z wejścia listę liczb całkowitych oddzielonych przecinkami. Wypisz dwa wiersze:

  1. Każdą liczbę pomnożoną przez 2, połączone , . Użyj klamrowej formy map.
  2. Ciąg "<n> squared is <n*n>" dla każdej liczby, po jednym w wierszu. Użyj formy do...end metody each.

Dla wejścia 1,2,3 wynikiem jest:

2, 4, 6
1 squared is 1
2 squared is 4
3 squared is 9

Spróbuj swoich sił

numbers = gets.chomp.split(",").map(&:to_i)

# TODO: wiersz 1, podwojone wartości, forma map z nawiasami klamrowymi, połączone za pomocą ", "
# TODO: wiersze 2..n, kwadraty liczb, forma each z do...end
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