v4 / vlib / v / gen / wasm / tests / arrays.vv
96 lines · 76 sloc · 1.28 KB · 287d33e2ab2764b243ed3088b7a06a116688e477
Raw
1struct TEST {
2 a int
3 b i64
4}
5
6fn static_arrays() (int, int, i64) {
7 a := [8]int{}
8 b := [10, 12, 150]!
9 c := [TEST{}, TEST{
10 b: 10
11 }]!
12
13 return a[2], b[1], c[1].b
14}
15
16fn index_expression() {
17 b := [10, 12, 150]!
18
19 a := b[2]
20 c := 'hello'[4]
21 d := unsafe { c'hello'[2] }
22
23 println(a)
24 println(c)
25 println(d)
26}
27
28fn test_this(index int) int {
29 a := 'hello'
30 if index < a.len && index >= 0 {
31 return a[index]
32 }
33 return 10
34}
35
36struct AA {
37 a [10]&int
38}
39
40struct IndexedWrite {
41mut:
42 idx u8
43 frame [4]u8
44}
45
46fn test_stuff() &int {
47 a := AA{}
48
49 mut b := &int(unsafe { nil })
50 b = a.a[2]
51
52 return b
53}
54
55fn selector_index_assign() {
56 mut app := IndexedWrite{}
57 app.idx = 1
58 app.frame[app.idx] = 123
59
60 println(app.frame[0])
61 println(app.frame[1])
62 println(app.frame[app.idx])
63}
64
65fn fixed_array_len() {
66 a := [10, 12, 150]!
67 println(a.len)
68 b := [8]int{}
69 println(b.len)
70}
71
72fn main() {
73 println('--- static_arrays()')
74 a, b, c := static_arrays()
75 println(a)
76 println(b)
77 println(c)
78
79 println('--- index_expression()')
80 index_expression()
81
82 println('--- test_this()')
83 println(test_this(2))
84 println(test_this(10))
85 println(test_this(-1))
86
87 println('--- test_stuff()')
88 v := test_stuff()
89 println(v)
90
91 println('--- selector_index_assign()')
92 selector_index_assign()
93
94 println('--- fixed_array_len()')
95 fixed_array_len()
96}
97