v2 / vlib / v / gen / wasm / tests / arrays.vv
86 lines · 68 sloc · 1.14 KB · 8a7c01750a5f241bee94808aba1829bd7ff8733d
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 main() {
66 println('--- static_arrays()')
67 a, b, c := static_arrays()
68 println(a)
69 println(b)
70 println(c)
71
72 println('--- index_expression()')
73 index_expression()
74
75 println('--- test_this()')
76 println(test_this(2))
77 println(test_this(10))
78 println(test_this(-1))
79
80 println('--- test_stuff()')
81 v := test_stuff()
82 println(v)
83
84 println('--- selector_index_assign()')
85 selector_index_assign()
86}
87