diff --git a/06_repetitions/for.v b/06_repetitions/for.v index db85909..e4ae58b 100644 --- a/06_repetitions/for.v +++ b/06_repetitions/for.v @@ -28,5 +28,48 @@ pub fn main() { // ==================================== // + nums := [1,2,3,4,5] + iter := SquareIterator { + arr : nums + } + + for squared in iter { + println(squared) + } + + // ==================================== // + + -} \ No newline at end of file +} + + +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] +//} \ No newline at end of file