Menu
CoddyTech

Domyślne wartości parametrów

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

Czasami chcesz, aby metoda miała rozsądną wartość domyślną, gdy argument nie zostanie podany. Wartości domyślne parametrów pozwalają określić, jaka powinna być wartość parametru, jeśli wywołujący go nie poda.

Aby ustawić wartość domyślną, użyj znaku = po nazwie parametru:

def greet(name = "friend")
  puts "Hello, #{name}!"
end

greet("Alice")  # Wyświetla: Hello, Alice!
greet           # Wyświetla: Hello, friend!

Gdy wywołasz greet bez argumentu, Ruby użyje wartości domyślnej „friend”. Gdy podasz argument, zastąpi on wartość domyślną.

Możesz łączyć zwykłe parametry z parametrami z wartościami domyślnymi. Parametry z wartościami domyślnymi zwykle umieszcza się po tych bez wartości domyślnych, a zwykły parametr nie może znajdować się między dwoma parametrami z wartościami domyślnymi:

def power(base, exponent = 2)
  base ** exponent
end

puts power(5)     # Wyświetla: 25 (5 do kwadratu)
puts power(2, 3)  # Wyświetla: 8 (2 do sześcianu)

Dzięki temu metody są bardziej elastyczne. Wywołujący mogą podać tylko niezbędne informacje, a opcjonalne szczegóły będą miały rozsądne wartości domyślne.

challenge icon

Wyzwanie

Łatwy

Zdefiniuj metodę o nazwie multiply, która przyjmuje dwa parametry: a i b. Parametr b powinien mieć domyślną wartość 1. Metoda powinna zwracać iloczyn a i b.

Wczytaj z wejścia dwie liczby całkowite:

  1. Pierwszą liczbę (zawsze zostanie podana)
  2. Drugą liczbę (może, ale nie musi zostać podana)

Jeśli podano tylko jedną wartość, wywołaj metodę, przekazując jej tylko ten argument (używając domyślnej wartości dla b). Jeśli podano dwie wartości, wywołaj metodę, przekazując jej oba argumenty.

Wypisz wynik wywołania metody.

Format danych wejściowych:

  • Pierwszy wiersz: pierwsza liczba
  • Drugi wiersz: liczba lub słowo none

Na przykład, jeśli dane wejściowe to 7 i 3:

21

Jeśli dane wejściowe to 5 i none:

5

Jeśli dane wejściowe to 12 i 4:

48

Spróbuj swoich sił

# Odczytaj dane wejściowe
a = gets.chomp.to_i
b_input = gets.chomp

# TODO: Zdefiniuj metodę multiply z parametrem b, którego domyślna wartość wynosi 1


# TODO: Wywołaj metodę odpowiednio, w zależności od tego, czy b_input ma wartość "none", czy jest liczbą
# Jeśli b_input ma wartość "none", wywołaj multiply tylko z argumentem a
# Jeśli b_input jest liczbą, wywołaj multiply z argumentami a i b

# Wypisz wynik
puts result
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