From 75d433fc65fc37cf160bac11d3a1831c6b90cb5f Mon Sep 17 00:00:00 2001 From: Vinicius Silva Date: Mon, 25 Dec 2023 11:32:39 -0300 Subject: [PATCH 1/6] For iterator implemented on for.v --- 06_repetitions/for.v | 45 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) 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 From d62b1b398a10a4d9b3d1e3e2c5b0f613722189ae Mon Sep 17 00:00:00 2001 From: Vinicius Silva Date: Mon, 25 Dec 2023 11:37:45 -0300 Subject: [PATCH 2/6] For map implemented in for.v --- 06_repetitions/for.v | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/06_repetitions/for.v b/06_repetitions/for.v index e4ae58b..d3f5b07 100644 --- a/06_repetitions/for.v +++ b/06_repetitions/for.v @@ -39,7 +39,26 @@ pub fn main() { // ==================================== // + m := { + 'one' : 1, + 'two' : 2 + } + for key, value in m { + println('${key} -> ${value}') + } + + // ==================================== // + + for key, _ in m { + println("${key}") + } + + for _, value in m { + println("${value}") + } + + // ==================================== // } From 216be074fd770c71102a0affe64cdbef266891d2 Mon Sep 17 00:00:00 2001 From: Vinicius Silva Date: Mon, 25 Dec 2023 11:42:15 -0300 Subject: [PATCH 3/6] Range for implemented --- 06_repetitions/for.v | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/06_repetitions/for.v b/06_repetitions/for.v index d3f5b07..2849213 100644 --- a/06_repetitions/for.v +++ b/06_repetitions/for.v @@ -59,6 +59,10 @@ pub fn main() { } // ==================================== // + + for i in 0..5 { + print('${i} ') + } } From 99f459662a337ac4ced862f684406c357a8fcf1c Mon Sep 17 00:00:00 2001 From: Vinicius Silva Date: Mon, 25 Dec 2023 11:44:34 -0300 Subject: [PATCH 4/6] Condition for implemented --- 06_repetitions/for.v | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/06_repetitions/for.v b/06_repetitions/for.v index 2849213..1bc075c 100644 --- a/06_repetitions/for.v +++ b/06_repetitions/for.v @@ -63,7 +63,20 @@ pub fn main() { for i in 0..5 { print('${i} ') } - + + // ==================================== // + + mut sum := 0 + mut i := 0 + + for i <= 100 { + sum += i + i++ + } + + println(sum) + + // ==================================== // } From 8215254b419536edf4439b121645e72d2865181f Mon Sep 17 00:00:00 2001 From: Vinicius Silva Date: Mon, 25 Dec 2023 11:54:46 -0300 Subject: [PATCH 5/6] Base for implemented --- 06_repetitions/for.v | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/06_repetitions/for.v b/06_repetitions/for.v index 1bc075c..d70c931 100644 --- a/06_repetitions/for.v +++ b/06_repetitions/for.v @@ -77,6 +77,18 @@ pub fn main() { println(sum) // ==================================== // + + mut num := 0 + + for { + num += 2 + + if num >= 10 { + break + } + } + + println(num) } From 3c71c22739027c263d833b6e124a3cbec5deec7a Mon Sep 17 00:00:00 2001 From: Vinicius Silva Date: Mon, 25 Dec 2023 12:06:33 -0300 Subject: [PATCH 6/6] Tradicional for and Label for implemented --- 06_repetitions/for.v | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/06_repetitions/for.v b/06_repetitions/for.v index d70c931..753cade 100644 --- a/06_repetitions/for.v +++ b/06_repetitions/for.v @@ -89,6 +89,33 @@ pub fn main() { } println(num) + + // ==================================== // + + for k := 0; k < 10; k += 2 { + if k == 6 { + continue + } + + println(k) + } + + // ==================================== // + + outer: for j := 4; true; j++ { + println(j) + + for { + if j < 7 { + continue outer + }else { + break outer + } + } + } + + // ==================================== // + }