Trong Rust, làm thế nào để tránh viết các vòng này? Mã này lấy một vector và nhân ba yếu tố liền kề với một sản phẩm. Do đó, vòng lặp bên ngoài đi qua tất cả các phần tử có thể tạo thành một nhóm ba và vòng lặp bên trong thực hiện phép nhân.Làm thế nào để tránh các vòng lặp khi lặp qua các phần tử lân cận của một vector
Khó khăn nằm, tôi nghĩ, trong vòng lặp không đầy đủ của vòng lặp ngoài (từ phần tử 0
đến last - 3
). Hơn nữa, vòng lặp bên trong phải sử dụng một phạm vi phụ.
Có cách nào để tránh viết các vòng lặp không?
let v = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9];
let mut products = Vec::new();
for seq in 0..v.len() - 3 {
let mut product = 1;
for offset in 0..3 {
product *= v[seq + offset];
}
products.push(product);
}
Ngay bây giờ, tất cả các tính 'product's được bỏ đi và không có gì thực sự xảy ra. Bạn có muốn thu thập tất cả các sản phẩm đó thành một véc tơ hay bạn muốn làm gì với chúng? –
Bạn nói đúng. Điều đó đã bị mất trong khi cắt mã gốc của tôi thành ví dụ trên. Tôi đã chỉnh sửa. – dani