Lặp qua vector
Thuộc phần Logic và luồng chương trình trong hành trình Rust của Coddy. Bài học 11 trên 66.
Giờ bạn đã biết cách tạo vector và truy cập từng phần tử, hãy cùng tìm hiểu cách xử lý có hệ thống mọi phần tử trong vector. Vòng lặp for rất phù hợp với việc này, giúp bạn lần lượt truy cập từng phần tử.
Đây là cú pháp cơ bản để lặp qua một vector:
let names = vec!["Alice", "Bob", "Charlie"];
for name in &names {
println!("Hello, {}!", name);
}Hãy chú ý đến & trước names: cách viết này tạo tham chiếu đến vector, cho phép bạn đọc từng phần tử mà không cần sở hữu chính vector đó. Mỗi lần lặp, bạn có thể truy cập từng phần tử thông qua biến vòng lặp name.
Vòng lặp for tự động kiểm tra giới hạn giúp bạn. Khác với việc truy cập bằng chỉ số thủ công, bạn sẽ không bao giờ vô tình cố truy cập một phần tử không tồn tại. Vòng lặp sẽ duyệt đúng số phần tử có trong vector, vừa an toàn vừa tiện lợi.
Bạn có thể dùng mẫu này với mọi kiểu vectơ:
let scores = vec![85, 92, 78, 90];
for score in &scores {
println!("Score: {}", score);
}Cách này là cách phổ biến và tự nhiên nhất để xử lý mọi phần tử trong một vector khi bạn cần đọc giá trị của chúng.
Thử thách
DễViết một hàm (function) sum_all_elements nhận một vector numbers và trả về tổng của tất cả phần tử trong đó.
Dùng vòng lặp for để duyệt qua vector và cộng dồn tổng của tất cả phần tử.
Tham số:
numbers(Vec<i32>): Vector chứa các số nguyên cần tính tổng
Giá trị trả về: Tổng của tất cả phần tử trong vector (i32)
Tự làm thử
fn sum_all_elements(numbers: Vec<i32>) -> i32 {
// Viết code tại đây
}
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 Logic và luồng chương trình
1Luồng điều khiển nâng cao
Biểu thức 'match'Khớp nhiều giá trịKhớp các phạm viBiểu thức 'if let'Vòng lặp dưới dạng biểu thứcÔn tập: Trình phân tích cú pháp lệnh đơn giản4Nhóm dữ liệu bằng Struct
Struct là gì?Tổng quan về StructTruy cập các trường của StructStruct có thể thay đổiStruct làm tham số cho hàmStruct dạng tupleÔn tập: Tạo Struct Book2Giới thiệu về vector
Vector là gì?Tạo vectorThêm phần tử bằng pushTruy cập phần tử trong vectorLặp qua vectorLặp có thể thay đổiXóa phần tửÔn tập: Bộ theo dõi điểm số cơ bản5Cặp khóa-giá trị với bảng băm
Bảng băm là gì?Tạo bảng bămThêm cặp khóa-giá trịTruy cập giá trịDuyệt qua bảng bămCập nhật giá trịXóa một cặpÔn tập: Bộ đếm từ8Dự án: Quản lý kho hàng đơn giản
Thiết lập dự ánThêm mặt hàngKiểm tra hàng tồn khoBán mặt hàngKết hợp tất cả11Thử thách cuối cùng
Ôn tập: Các mục duy nhấtÔn tập: Trình xác thực hồ sơ người dùngÔn tập: Tổng hợp điểm3Danh sách việc cần làm trên dòng lệnh
Thiết lập dự ánThêm một việcXem tất cả việcXóa một việcCode hoàn chỉnh6Xử lý giá trị vắng mặt với 'Option'
'Option' là gì?Dùng 'match' với 'Option'is_some() và is_none()Lấy giá trị từ 'Option'expectCung cấp giá trị mặc định: unwrap_orÔn tập: tìm một phần tử9Lát cắt chuỗi và hơn thế nữa
String và &strTạo lát cắt chuỗiLát cắt làm tham số hàmCác lát cắt khácÔn tập: Tìm từ đầu tiênTự luyện tập: Trình biên dịch Rust online