For iterator implemented on for.v

This commit is contained in:
Vinicius Silva 2023-12-25 11:32:39 -03:00
parent 4968a0b099
commit 75d433fc65
1 changed files with 44 additions and 1 deletions

View File

@ -28,5 +28,48 @@ pub fn main() {
// ==================================== //
nums := [1,2,3,4,5]
iter := SquareIterator {
arr : nums
}
for squared in iter {
println(squared)
}
// ==================================== //
}
}
struct SquareIterator {
arr []int
mut:
idx int
}
fn (mut iter SquareIterator) next() ?int{
if iter.idx >= iter.arr.len {
return none
}else {
defer {
iter.idx++
}
return iter.arr[iter.idx]
}
}
//fn (mut iter SquareIterator) next() ?int {
// if iter.idx >= iter.arr.len {
// return none
// }
// defer {
// iter.idx++
// }
//
// return iter.arr[iter.idx] * iter.arr[iter.idx]
//}