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.
Wyzwanie
ŁatwyZdefiniuj 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:
- Pierwsza liczba (zawsze zostanie podana)
- 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:
21Jeśli dane wejściowe to 5 i none:
5Jeśli dane wejściowe to 12 i 4:
48Spró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 resultTa lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory — część 2
Operatory logiczne — część 1Operatory logiczne — część 2Powtórka — podstawy logikiOperatory logiczne — część 3Operatory logiczne — część 47Kalkulator podziału rachunku
Wiadomość powitalnaPobieranie danych od użytkownika2Zmienne i typy danych
Liczby i zmienneTyp danych StringTyp danych BooleanTyp danych SymbolSprawdzanie typów danychKonwencje nazewnictwaPodsumowanie — tworzenie zmiennych5Podejmowanie decyzji
Instrukcja ifIf - elsePowtórka — prosty kalkulatorZagnieżdżone if - elseInstrukcja unless8Pętle
Pętla for z zakresamiPętla whilebreaknextPowtórka – silniaPętla timesPętla untilPętle zagnieżdżonePowtórka – dynamiczne wejście3Operatory — część 1
Operatory arytmetyczneOperator moduloSkrócone operatory arytmetycznePodsumowanie — prosta matematykaOperatory porównania6Podstawowe wejście i wyjście
Wyświetlanie za pomocą putsWyświetlanie za pomocą print i pWyświetlanie zmiennychWczytywanie za pomocą getsMetoda chompKonwersja typówPodsumowanie – kalkulator wiekuPodsumowanie – prawda czy fałsz9Metody
Definiowanie metodyParametry metodyWartości zwracanePowtórka — metoda SigmaPowtórka — metoda walidacjiDomyślne wartości parametrówPoćwicz samodzielnie: Kompilator Ruby online