Tham số và đối số
Thuộc phần Kiến thức nền tảng trong hành trình Rust của Coddy. Bài học 50 trên 75.
Đối số trong hàm là giá trị bạn truyền vào hàm khi gọi hàm đó. Để thêm đối số vào hàm, ta viết chúng bên trong dấu ngoặc đơn ():
fn function_name(arg1: data_type, arg2: data_type, ...) {
// code
}Ta có thể đặt tên cho các đối số tùy ý và viết bao nhiêu đối số tùy nhu cầu.
Để gọi một hàm và truyền đối số vào hàm, ta viết:
function_name(value1, value2, value3, ...);Truyền quá nhiều đối số cho một hàm đang chờ ít đối số hơn sẽ khiến chương trình gặp lỗi.
Ví dụ về cách sử dụng:
fn is_even(number: i32) {
if number % 2 == 0 {
println!("{} is even", number);
} else {
println!("{} is odd", number);
}
}
for i in 15..34 {
is_even(i);
}
for i in 153..219 {
is_even(i);
}Ở đây, ta có hàm (function) tên là is_even, nhận một đối số tên là number và in ra số đó là số chẵn hay số lẻ. Sau đó, ta gọi hàm hai lần: lần đầu với tất cả các số từ 15 đến 34, lần thứ hai với tất cả các số từ 153 đến 219.
Thử thách
DễViết một chương trình nhận hai số đầu vào. Các số đầu vào là đối số của hàm.
Tạo một hàm nhận hai đối số, tính tích của chúng rồi in ra. Bạn có thể đặt tên hàm tùy ý.
Gọi hàm với hai số đầu vào.
Lưu ý! Trong code, hãy viết hàm trước các câu lệnh gọi hàm hoặc thực thi hàm.
Tự làm thử
use std::io;
// Khai báo hàm (function)
fn main() {
let mut input_a = String::new();
let mut input_b = String::new();
io::stdin().read_line(&mut input_a).unwrap();
io::stdin().read_line(&mut input_b).unwrap();
let a: i32 = input_a.trim().parse().unwrap();
let b: i32 = input_b.trim().parse().unwrap();
// Gọi hàm với a và b làm đối số (argument)
}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
5Các toán tử phần 2
Các toán tử logic phần 1Các toán tử logic phần 2Ôn tập: logic đơn giảnCác toán tử logic phần 33Biến phần 2
Khai báo kiểu dữ liệuQuy ước đặt tênSuy luận kiểu dữ liệuÔn tập: Khởi tạo biếnÉp kiểu dữ liệu9Vòng lặp
Vòng lặp for qua chuỗiVòng lặp whileBreakContinueVòng lặp lồng nhauNhãn vòng lặpVòng lặp vô hạnÔn tập: Đầu vào động12Kiến thức cơ bản về mảng
Khai báo mảngMảng làm tham sốTruy cập phần tửChỉnh sửa mảngÔn tập: In mảng đẹp mắtTự luyện tập: Trình biên dịch Rust online