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