🔗 Iterator Adapters Nâng Cao
🎯 Mục Tiêu Bài Học
Sau khi hoàn thành bài học này, bạn sẽ:
- ✅ Sử dụng
.zip()để kết hợp iterators - ✅ Dùng
.enumerate()để có index - ✅ Giới hạn với
.take()và.skip() - ✅ Kết nối iterators với
.chain() - ✅ Flatten nested structures
- ✅ Tạo custom iterator
🤔 Iterator Adapters Là Gì?
Ẩn Dụ Cuộc Sống: Lắp Ráp LEGO
Iterator Adapters giống như các mảnh LEGO đặc biệt:
🧩 LEGO Blocks:
- Kết nối các mảnh lại (chain)
- Ghép đôi các mảnh (zip)
- Đánh số từng mảnh (enumerate)
- Lấy một số mảnh (take, skip)
🦀 Iterator Adapters:
- Transform iterators
- Combine multiple iterators
- Control iteration flow
- Create complex pipelines
Ví Dụ Cơ Bản
fn main() {
let numbers = vec![1, 2, 3, 4, 5];
let letters = vec!['a', 'b', 'c'];
// Zip hai iterators lại
let paired: Vec<_> = numbers
.iter()
.zip(letters.iter())
.collect();
println!("{:?}", paired); // [(1, 'a'), (2, 'b'), (3, 'c')]
}