From 602168a656a8e410f36141e28b320de3a483b574 Mon Sep 17 00:00:00 2001 From: Vinicius Silva Date: Wed, 27 Dec 2023 18:51:13 -0300 Subject: [PATCH 1/3] multidimensional.v file implemented --- 07_collections/multidimensional.v | 43 +++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 07_collections/multidimensional.v diff --git a/07_collections/multidimensional.v b/07_collections/multidimensional.v new file mode 100644 index 0000000..3f85c0d --- /dev/null +++ b/07_collections/multidimensional.v @@ -0,0 +1,43 @@ +pub fn main() +{ + mut a := [][]int{len: 2, init: []int{len: 3}} + a[0][1] = 2 + println(a) + + mut a1 := [][][]int{len: 3, init: [][]int{len: 3, init: []int{len: 3}}} + println(a1) + + a1[0][1][1] = 2 + println(a1) + + nums := [1,2,3] + nums_copy := nums.clone() + println(nums_copy) + + nums1 := [1,2,3,4,5,6] + + even := nums1.filter(it % 2 == 0) + println(even) + + even_fn := nums1.filter(fn (x int) bool{ + return x % 3 == 0 + }) + + println(even_fn) + + words := ['hello','world'] + upper := words.map(it.to_upper()) + println(upper) + + upper_fn := words.map(fn (w string) string{ + return w.upper() + }) + + println(upper_fn) + + nums2 := [1,2,3] + println(num2.any(it == 2)) + println(num2.all(it >= 2)) + + +} \ No newline at end of file From 5943f79d419aa97503eca9a764cdddfab146b6f6 Mon Sep 17 00:00:00 2001 From: Vinicius Silva Date: Wed, 27 Dec 2023 20:36:32 -0300 Subject: [PATCH 2/3] Implemented more code on multidimensional.v file --- 07_collections/multidimensional.v | 46 +++++++++++++++++++++++++++---- 1 file changed, 41 insertions(+), 5 deletions(-) diff --git a/07_collections/multidimensional.v b/07_collections/multidimensional.v index 3f85c0d..19ea7cc 100644 --- a/07_collections/multidimensional.v +++ b/07_collections/multidimensional.v @@ -30,14 +30,50 @@ pub fn main() println(upper) upper_fn := words.map(fn (w string) string{ - return w.upper() + return w.to_upper() }) println(upper_fn) nums2 := [1,2,3] - println(num2.any(it == 2)) - println(num2.all(it >= 2)) + println(nums2.any(it == 2)) + println(nums2.all(it >= 2)) + + mut numbers1 := [1,2,3] + numbers1.sort() + numbers1.sort(a > b) + + + mut users := [User{21, 'Bob'}, User{65, 'Zarkon'}, User{25, 'Alice'}] + users.sort(a.age < b.age) + users.sort(a.name > b.name) + + custom_sort_fn := fn(a &User, b &User) int + { + if a.name == b.name { + if a.age < b.age { + return 1 + } + if a.age > b.age { + return -1 + } + + return 0 + } + if a.name < b.name { + return -1 + }else{ + return 1 + } + + return 0 + } + + users.sort_with_compare(custom_sort_fn) +} + +struct User{ + age int + name string +} - -} \ No newline at end of file From 97dec3a9cadefbcb6e7119925bb0e587b6b67341 Mon Sep 17 00:00:00 2001 From: Vinicius Silva Date: Wed, 27 Dec 2023 22:23:00 -0300 Subject: [PATCH 3/3] Final implemented multidimensional.v --- 07_collections/multidimensional.v | 76 +++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/07_collections/multidimensional.v b/07_collections/multidimensional.v index 19ea7cc..9b617ef 100644 --- a/07_collections/multidimensional.v +++ b/07_collections/multidimensional.v @@ -70,6 +70,82 @@ pub fn main() } users.sort_with_compare(custom_sort_fn) + + nums3 := [0,10,20,30,40] + + println(nums3[1..4]) + println(nums3[..4]) + println(nums3[1..]) + + array_1 := [3,5,4,7,6] + mut array_2 := [0,1] + array_2 << array_1[..3] + + println(array_2) + + // ========================================================== // + + mut a4 := [0,1,2,3,4,5] + mut b4 := a4[2..4].clone() + b4[0] = 7 + println(a4) + b4 << 9 + println(a4) + println(b4) + + // ========================================================== // + + mut a5 := []int{len: 5, cap: 6, init: 2} + mut b5 := unsafe{ a5[1..4] } + a5 << 3 + b5[2] = 13 + a5 << 4 + b5[1] = 3 + println(a5) + println(b5) + + // ========================================================== // + + mut a6 := [0,1,2,3,4,5] + mut b6 := a6[2..4].clone() + b6[0] = 7 + + println(a6) + println(b6) + + // ========================================================== // + + a8 := [0,1,2,3,4,5,6,7,8,9] + println(a8#[-3..]) + println(a8#[-20..]) + println(a8#[-20..-8]) + println(a8#[..-3]) + + println(a8#[-20..-10]) + println(a8#[20..10]) + println(a8#[20..30]) + + // ========================================================== // + + files := ['pipoo.png', '01.bmp', '_v.txt', 'img_02.jpg', 'img_01.JPG'] + filtered := files.filter(it#[-4..].to_lower() == '.jpg').map(it.to_upper()) + println(filtered) + + mut fnums := [3]int{} + + fnums[0] = 1 + fnums[1] = 10 + fnums[2] = 100 + + println(fnums) + println(typeof(fnums).name) + + fnums1 := [1,10,100]! + anums := fnums[..] + + println(anums) + println(typeof(anums).name) + } struct User{