Menu
CoddyTech

默认参数值

本课属于 Coddy R 学习旅程的“基础知识”单元。第 51 课,共 78 课。

有时,你希望函数具有一种“标准”行为,并能在需要时进行自定义。默认参数值可以让你定义调用者未提供参数时该参数应采用的值。

在函数定义中使用 = 来设置默认值:

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

greet()
greet("Alice")

输出:

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

不提供参数时,函数会使用 "Guest" 作为默认值。提供值时,它会覆盖默认值。

你可以混合使用必需参数和可选参数。带默认值的参数应放在不带默认值的参数后面:

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

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

输出:

[1] 110
[1] 120

这里,price 是必需的,而 tax_rate 的默认值为 10%。这样一来,你的函数就很灵活:常见情况下使用简单,需要时也可以自定义。

challenge icon

挑战

简单

创建一个名为 calculate_shipping 的函数,它接受两个参数:

  • weight:包裹的重量(必需)
  • rate:每单位重量的费用(可选,默认值为 5)

函数应返回运费,计算方式为 weight * rate。

你会收到两行输入:

  1. 一个重量值
  2. 一个费率值或单词 default

如果第二个输入是 default,则只用重量调用函数(使用默认费率)。否则,使用重量和提供的费率调用函数。

打印返回的结果。

例如,如果输入是:

10
default

输出应为:

[1] 50

如果输入是:

10
3

输出应为:

[1] 30

亲手试试

# 读取输入
con <- file("stdin", "r")
weight <- as.numeric(suppressWarnings(readLines(con, n = 1)))
rate_input <- suppressWarnings(readLines(con, n = 1))
close(con)

# TODO: 在下方编写你的代码
# 1. 定义 calculate_shipping 函数,包含必填参数 weight 和可选参数 rate(默认值为 5)
# 2. 检查 rate_input 是 "default" 还是数字
# 3. 根据情况调用函数并打印结果
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: R 在线编译器