Menu
Coddy logo textTech

Domyślne wartości parametrów

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

Czasami chcesz, aby metoda miała sensowną wartość zastępczą, gdy nie podano argumentu. 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łujesz greet bez argumentu, Ruby używa wartości domyślnej „friend”. Gdy podajesz argument, zastępuje on wartość domyślną.

Możesz łączyć zwykłe parametry z parametrami domyślnymi, ale parametry z wartościami domyślnymi muszą występować po tych bez wartości domyślnych:

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

puts power(5)     # Wypisuje: 25 (5 do kwadratu)
puts power(2, 3)  # Wypisuje: 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 przyjmują 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. Pierwsza liczba (zawsze zostanie podana)
  2. Druga liczba (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 parametru 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ł

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

# TODO: Zdefiniuj metodę multiply z parametrem b o domyślnej wartości 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

# Wyświetl 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