Menu
Coddy logo textTech

Valores de Parâmetro Padrão

Parte da seção Fundamentos do Journey de R da Coddy — lição 51 de 78.

Às vezes, você deseja que uma função tenha um comportamento "padrão" que possa ser personalizado quando necessário. Valores de parâmetro padrão permitem que você defina o que um parâmetro deve ser caso o chamador não o forneça.

Você define um valor padrão usando = na definição da função:

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

greet()
greet("Alice")

Saída:

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

Quando chamada sem um argumento, a função usa "Guest" como o padrão. Quando você fornece um valor, ele substitui o padrão.

Você pode misturar parâmetros obrigatórios e opcionais. Parâmetros com valores padrão devem vir depois daqueles sem:

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

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

Saída:

[1] 110
[1] 120

Aqui, price é obrigatório, enquanto tax_rate tem como padrão 10%. Isso torna suas funções flexíveis - simples de usar em casos comuns, mas customizáveis quando necessário.

challenge icon

Desafio

Fácil

Crie uma função chamada calculate_shipping que recebe dois argumentos:

  • weight - o peso do pacote (obrigatório)
  • rate - o custo por unidade de peso (opcional, o padrão é 5)

A função deve retornar o custo de envio, calculado como weight * rate.

Você receberá duas linhas de entrada:

  1. Um valor de peso
  2. Um valor de taxa OU a palavra default

Se a segunda entrada for default, chame a função apenas com o peso (usando a taxa padrão). Caso contrário, chame a função com o peso e a taxa fornecida.

Imprima o resultado retornado.

Por exemplo, se as entradas forem:

10
default

A saída deve ser:

[1] 50

Se as entradas forem:

10
3

A saída deve ser:

[1] 30

Folha de consulta

Você pode definir valores de parâmetros padrão em uma função usando = na definição da função:

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

greet()           # Usa o padrão: "Hello, Guest"
greet("Alice")    # Sobrescreve o padrão: "Hello, Alice"

Ao misturar parâmetros obrigatórios e opcionais, coloque os parâmetros com valores padrão após aqueles que não os possuem:

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

calculate_total(100)       # Usa o tax_rate padrão: 110
calculate_total(100, 0.2)  # tax_rate personalizado: 120

Experimente você mesmo

# Ler a entrada
con <- file("stdin", "r")
weight <- as.numeric(suppressWarnings(readLines(con, n = 1)))
rate_input <- suppressWarnings(readLines(con, n = 1))
close(con)

# TODO: Escreva seu código abaixo
# 1. Defina a função calculate_shipping com weight (obrigatório) e rate (opcional, padrão = 5)
# 2. Verifique se rate_input é "default" ou um número
# 3. Chame a função apropriadamente e imprima o resultado
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos