v2 / vlib / v / checker / tests / unnecessary_parenthesis_of_reference.vv
69 lines · 60 sloc · 1.39 KB · 49155ec3129ac08a062cd95242776391d5ca30d5
Raw
1struct Quad {
2mut:
3 x f64
4 y f64
5 z f64
6 w f64
7}
8
9fn (q Quad) get(i int) f64 {
10 return match i {
11 0 { q.x }
12 1 { q.y }
13 2 { q.z }
14 else { q.w }
15 }
16}
17
18fn (mut q Quad) set(i int, v f64) {
19 match i {
20 0 { q.x = v }
21 1 { q.y = v }
22 2 { q.z = v }
23 else { q.w = v }
24 }
25}
26
27// ritorna una nuova Quadrica somma del ricevente e di un'altra
28fn (q &Quad) add(other &Quad) &Quad {
29 return &(Quad{q.x + other.x, q.y + other.y, q.z + other.z, q.w + other.w})
30}
31
32// ritorna una nuova Quadrica differenza tra il ricevente e un'altra
33fn (q &Quad) sub(other &Quad) &Quad {
34 return &(Quad{q.x - other.x, q.y - other.y, q.z - other.z, q.w - other.w})
35}
36
37// ritorna una nuova Quadrica ottenuta negando il ricevente
38fn (q &Quad) neg() &Quad {
39 return &(Quad{-q.x, -q.y, -q.z, -q.w})
40}
41
42// ritorna una nuova Quadrica ottenuta moltiplicando il ricevente per una costante
43fn (q &Quad) mult(factor f64) &Quad {
44 return &(Quad{q.x * factor, q.y * factor, q.z * factor, q.w * factor})
45}
46
47// ritorna una nuova Quadrica ottenuta dividendo il ricevente per una costante
48fn (q &Quad) div(factor f64) &Quad {
49 return &(Quad{q.x / factor, q.y / factor, q.z / factor, q.w / factor})
50}
51
52fn main() {
53 mut n := Quad{1, 2, 3, 4}
54
55 println(n)
56 println(n.get(0))
57 println(n.get(1))
58 println(n.get(2))
59 println(n.get(3))
60 n.set(0, 5)
61 n.set(1, 6)
62 n.set(2, 7)
63 n.set(3, 8)
64 println(n)
65 println(n.get(0))
66 println(n.get(1))
67 println(n.get(2))
68 println(n.get(3))
69}
70