diff --git a/12_union/main.v b/12_union/main.v new file mode 100644 index 0000000..3006bc3 --- /dev/null +++ b/12_union/main.v @@ -0,0 +1,41 @@ +struct Rgba32_Component{ + r u8 + g u8 + b u8 + a u8 +} + +union Rgba32{ + Rgba32_Component + mut: + value u32 +} + +pub fn main(){ + + clr1 := Rgba32{ + value: 0x008811FF + } + + clr2 := Rgba32{ + Rgba32_Component: Rgba32_Component{ + a: 128 + } + } + + white := Rgba32{ + Rgba32_Component : Rgba32_Component{ + r: 255 + g: 255 + b: 255 + } + } + + sz := sizeof(Rgba32) + + unsafe{ + println('Size: ${sz}B,clr1.b: ${clr1.b},clr2.b: ${clr2.b}') + white.value = 0xFFFFF + println("RED ${white.r} | GREEN ${white.g} | BLUE ${white.b} | VALUE ${white.value}") + } +} \ No newline at end of file diff --git a/13_functions/func.v b/13_functions/func.v new file mode 100644 index 0000000..fb242bd --- /dev/null +++ b/13_functions/func.v @@ -0,0 +1,30 @@ +struct User{ + name string +mut: + is_registered bool +} + +fn (mut user User) register(){ + user.is_registered = true +} + + +fn multiply_by_2(mut arr[] int){ + for i in 0..arr.len{ + arr[i] *= 2 + } +} + +pub fn main(){ + + mut user := User{} + + println(user.is_registered) + user.register() + println(user.is_registered) + + mut nums := [1,2,3] + multiply_by_2(mut nums) + println(nums) + +} \ No newline at end of file diff --git a/13_functions/variable_number.v b/13_functions/variable_number.v new file mode 100644 index 0000000..4314fe1 --- /dev/null +++ b/13_functions/variable_number.v @@ -0,0 +1,24 @@ +fn sum(a ...int) int{ + + mut total := 0 + + for x in a{ + total += x + } + + return total +} + +pub fn main(){ + println(sum()) + println(sum(2,1)) + println(sum(2,3,5,3)) + println(sum(1)) + + a := [2,3,4] + println(sum(...a)) + + b := [4,5,6] + println(sum(...b)) + +} \ No newline at end of file