For iterator implemented on for.v
This commit is contained in:
parent
4968a0b099
commit
75d433fc65
|
|
@ -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]
|
||||
//}
|
||||
Loading…
Reference in New Issue