Menu
CoddyTech

Giá trị tham số mặc định

Thuộc phần Kiến thức nền tảng trong hành trình R của Coddy. Bài học 51 trên 78.

Đôi khi, bạn muốn một hàm có hành vi “mặc định” mà bạn có thể tùy chỉnh khi cần. Giá trị tham số mặc định giúp bạn xác định giá trị của tham số nếu bên gọi không cung cấp.

Bạn đặt giá trị mặc định bằng cách dùng = trong phần định nghĩa hàm (function):

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

greet()
greet("Alice")

Đầu ra:

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

Khi được gọi mà không có đối số, hàm (function) dùng "Guest" làm giá trị mặc định. Khi bạn cung cấp một giá trị, giá trị đó sẽ thay thế giá trị mặc định.

Bạn có thể kết hợp tham số bắt buộc và tham số tùy chọn. Tham số có giá trị mặc định nên đặt sau các tham số không có giá trị mặc định:

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

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

Đầu ra:

[1] 110
[1] 120

Ở đây, price là bắt buộc, còn tax_rate mặc định là 10%. Nhờ vậy, các hàm của bạn linh hoạt, dễ dùng trong những trường hợp phổ biến nhưng vẫn có thể tùy chỉnh khi cần.

challenge icon

Thử thách

Dễ

Tạo một hàm (function) có tên calculate_shipping nhận hai đối số:

  • weight: trọng lượng của kiện hàng (bắt buộc)
  • rate: chi phí cho mỗi đơn vị trọng lượng (không bắt buộc, mặc định là 5)

Hàm này sẽ trả về chi phí vận chuyển, được tính bằng weight * rate.

Bạn sẽ nhận được hai dòng đầu vào:

  1. Giá trị trọng lượng
  2. Giá trị rate hoặc từ default

Nếu đầu vào thứ hai là default, hãy gọi hàm chỉ với trọng lượng (sử dụng rate mặc định). Nếu không, hãy gọi hàm với cả trọng lượng và rate đã cho.

In ra kết quả trả về.

Ví dụ, nếu đầu vào là:

10
default

Đầu ra sẽ là:

[1] 50

Nếu đầu vào là:

10
3

Đầu ra sẽ là:

[1] 30

Tự làm thử

# Đọc đầu vào
con <- file("stdin", "r")
weight <- as.numeric(suppressWarnings(readLines(con, n = 1)))
rate_input <- suppressWarnings(readLines(con, n = 1))
close(con)

# TODO: Viết code bên dưới
# 1. Định nghĩa hàm (function) calculate_shipping với tham số weight (bắt buộc) và rate (không bắt buộc, mặc định = 5)
# 2. Kiểm tra rate_input là "default" hay một số
# 3. Gọi hàm cho phù hợp và in kết quả
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Trình biên dịch R online