Đối số hàm
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 47 trên 78.
Hàm (function) trở nên mạnh mẽ hơn nhiều khi có thể nhận đầu vào (input). Đối số (argument) (còn gọi là tham số (parameter)) cho phép bạn truyền giá trị (value) vào hàm, giúp hàm linh hoạt và có thể tái sử dụng trong nhiều tình huống khác nhau.
Để thêm đối số, hãy đặt chúng trong dấu ngoặc đơn khi định nghĩa hàm:
greet <- function(name) {
print(paste("Hello,", name))
}
greet("Alice")
greet("Bob")Đầu ra:
[1] "Hello, Alice"
[1] "Hello, Bob"Giờ đây, hàm (function) hoạt động với bất kỳ tên nào bạn cung cấp. Khi bạn gọi greet("Alice"), giá trị "Alice" được gán cho tham số name bên trong hàm.
Bạn có thể định nghĩa nhiều đối số, ngăn cách chúng bằng dấu phẩy:
add <- function(a, b) {
print(a + b)
}
add(5, 3)
add(10, 20)Đầu ra:
[1] 8
[1] 30Khi gọi một hàm (function) có nhiều đối số, các giá trị được ghép với tham số theo thứ tự. Giá trị đầu tiên ứng với tham số đầu tiên, giá trị thứ hai ứng với tham số thứ hai, và cứ tiếp tục như vậy.
Thử thách
DễTạo một hàm (function) có tên calculate_area nhận hai đối số: length và width. Hàm này sẽ in ra diện tích (length nhân với width) bằng print().
Đọc hai số từ đầu vào, chuyển chúng thành giá trị số rồi gọi hàm của bạn với các giá trị này.
Ví dụ, nếu đầu vào là 5 và 3, đầu ra sẽ là:
[1] 15Nếu đầu vào là 7 và 4, đầu ra sẽ là:
[1] 28Tự làm thử
# Đọc đầu vào
con <- file("stdin", "r")
length <- as.numeric(suppressWarnings(readLines(con, n = 1)))
width <- as.numeric(suppressWarnings(readLines(con, n = 1)))
close(con)
# TODO: Tạo hàm (function) tên là calculate_area nhận length và width
# và in ra diện tích (length * width)
# Gọi hàm của bạn với các giá trị đầu vàoBà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
4Toán tử phần 2
Toán tử logic (AND, OR)Toán tử logic phần 2 (NOT)Ôn tập: logic đơn giảnLogic vector hóa phần 1Logic vector hóa phần 22Biến và kiểu dữ liệu
Kiểu dữ liệu sốKiểu dữ liệu số nguyênKiểu dữ liệu ký tựKiểu dữ liệu logicKiểm tra kiểu dữ liệuQuy tắc đặt tênGiá trị thiếu: NATóm tắt: tạo biến8Vòng lặp
Vòng lặp forVòng lặp whileBreakNext (continue)Ôn tập: giai thừaTạo dãy (seq, :)Vòng lặp lồng nhauÔn tập: đầu vào động3Toán tử phần 1
Toán tử số họcPhép chia lấy phần nguyên và phép moduloToán tử gánÔn tập: phép tính đơn giảnToán tử so sánh6Nhập xuất cơ bản
In đầu raDùng cat để in đầu raĐầu ra với biếnĐọc đầu vào bằng readline()Cơ bản về chuyển đổi kiểuÔn tập: máy tính tuổiÔn tập: đúng hay sai9Hàm
Khai báo hàmĐối số hàmGiá trị trả vềÔn tập: hàm SigmaÔn tập: hàm xác thựcGiá trị tham số mặc địnhTự luyện tập: Trình biên dịch R online