Nhiều giá trị trả về
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 52 trên 75.
Trong Rust, một hàm (function) có thể trả về nhiều giá trị bằng cách dùng tuple làm kiểu trả về. Tuple là một nhóm gồm nhiều giá trị khác nhau được gộp thành một đơn vị.
Ví dụ:
fn get_coordinates() -> (i32, i32) {
let x = 10;
let y = 20;
(x, y) // Trả về một tuple
}Và đây là cách gọi hàm:
let (x, y) = get_coordinates();
// Phân rã tuple
// thành các biến riêng biệt
println!("{}, {}", x, y);Bạn có thể trả về bao nhiêu giá trị tùy ý bằng cách thêm các phần tử vào tuple. Ví dụ:
fn get_details() -> (String, i32, f64) {
let name = String::from("Alice");
let age = 30;
let score = 95.5;
(name, age, score)
// Trả về một tuple gồm ba giá trị
}Và đây là cách gọi hàm (function):
let (name, age, score) = get_details();
println!("{}, {}, {}", name, age, score);Thử thách
DễTạo một hàm (function) có tên get_user_info trả về một tuple chứa tên, tuổi và địa chỉ email của người dùng. Hàm cần có chữ ký sau:
fn get_user_info() -> (String, i32, String)Bên trong hàm, tạo các biến sau:
name: mộtStringđược khởi tạo bằng "Bob"age: mộti32được khởi tạo bằng 25email: mộtStringđược khởi tạo bằng "bob@example.com"
Trả về ba giá trị này dưới dạng một tuple.
Trong hàm main, gọi get_user_info và giải cấu trúc tuple được trả về thành các biến riêng có tên name, age và email. Sau đó, in các giá trị này ra bảng điều khiển bằng println! theo định dạng sau:
Name: [name], Age: [age], Email: [email]Tự làm thử
fn get_user_info() -> (String, i32, String) {
// Tạo các biến name, age và email ở đây
// Trả về tuple
}
fn main() {
// Gọi get_user_info và tách các giá trị từ tuple trả về
// In ra các giá trị
}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 311Hàm
Khai báo hàmTham số và đối sốGiá trị trả vềNhiều giá trị trả vềÔn tập: hàm SigmaÔn tập: hàm kiểm tra tính hợp lệ3Biế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