Menu
Coddy logo textTech

Domyślne wartości parametrów

Część sekcji Podstawy ścieżki R w Coddy. Lekcja 51 z 78.

Czasami chcesz, aby funkcja miała „standardowe” działanie, które można dostosować w razie potrzeby. Domyślne wartości parametrów pozwalają określić, jaką wartość powinien mieć parametr, jeśli wywołujący go nie poda.

Ustawiasz wartość domyślną, używając = w definicji funkcji:

greet <- function(name = "Guest") {
  print(paste("Hello,", name))
}

greet()
greet("Alice")

Wynik:

[1] "Hello, Guest"
[1] "Hello, Alice"

Wywołana bez argumentu funkcja używa wartości "Guest" jako domyślnej. Gdy podasz wartość, zastąpi ona wartość domyślną.

Możesz łączyć wymagane i opcjonalne parametry. Parametry z wartościami domyślnymi powinny występować po tych bez wartości domyślnych:

calculate_total <- function(price, tax_rate = 0.1) {
  return(price + (price * tax_rate))
}

print(calculate_total(100))
print(calculate_total(100, 0.2))

Wynik:

[1] 110
[1] 120

Tutaj price jest wymagane, a tax_rate domyślnie wynosi 10%. Dzięki temu Twoje funkcje są elastyczne — proste w użyciu w typowych przypadkach, ale można je dostosować w razie potrzeby.

challenge icon

Wyzwanie

Łatwy

Utwórz funkcję o nazwie calculate_shipping, która przyjmuje dwa argumenty:

  • weight – waga paczki (wymagana)
  • rate – koszt jednostki wagi (opcjonalny, domyślnie 5)

Funkcja powinna zwracać koszt wysyłki obliczony jako weight * rate.

Otrzymasz dwa wiersze danych wejściowych:

  1. Wartość wagi
  2. Wartość stawki LUB słowo default

Jeśli drugą daną wejściową jest default, wywołaj funkcję, podając tylko wagę (użyta zostanie domyślna stawka). W przeciwnym razie wywołaj funkcję, podając zarówno wagę, jak i podaną stawkę.

Wypisz zwrócony wynik.

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

10
default

Wynik powinien być następujący:

[1] 50

Jeśli dane wejściowe to:

10
3

Wynik powinien być następujący:

[1] 30

Spróbuj swoich sił

# Odczytaj dane wejściowe
con <- file("stdin", "r")
weight <- as.numeric(suppressWarnings(readLines(con, n = 1)))
rate_input <- suppressWarnings(readLines(con, n = 1))
close(con)

# TODO: Napisz swój kod poniżej
# 1. Zdefiniuj funkcję calculate_shipping z argumentami weight (wymagany) i rate (opcjonalny, domyślnie = 5)
# 2. Sprawdź, czy rate_input to "default", czy liczba
# 3. Wywołaj funkcję w odpowiedni sposób i wypisz wynik
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 R online