Làm thế nào để lặp qua một phạm vi với bước tùy chỉnh trong Rust?
Làm thế nào để lặp qua một phạm vi với bước tùy chỉnh trong Rust?
Để lặp qua một phạm vi với bước tùy chỉnh trong Rust, bạn có thể sử dụng phương thức step_by()
từ trait Iterator
. Phương thức này cho phép bạn chỉ định kích thước bước lặp. Ví dụ, nếu bạn muốn lặp từ 0 đến 10 với bước nhảy là 2, bạn có thể viết như sau:
for i in (0..11).step_by(2) {
println!("{}", i);
}
Đoạn mã trên sẽ in ra các số 0, 2, 4, 6, 8, 10.
Nếu bạn muốn lặp qua một phạm vi với bước nhảy không đều, ví dụ như nhân đôi giá trị sau mỗi lần lặp, bạn có thể tạo một iterator tùy chỉnh. Một cách để làm điều này là sử dụng struct MulStep
và trait StepByMulExtender
như trong ví dụ dưới đây:
use std::ops::{Mul, Range};
struct MulStep<T> {
step: T,
pos: T,
end: T,
}
impl<T> Iterator f...
junior
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào