2019-08-30 12:16:39 +03:00
|
|
|
struct A {
|
|
|
|
pub mut:
|
|
|
|
v []int
|
|
|
|
}
|
|
|
|
|
|
|
|
struct B {
|
|
|
|
pub mut:
|
|
|
|
a []A
|
|
|
|
}
|
|
|
|
|
2019-08-11 00:02:48 +03:00
|
|
|
fn foo(b int, a mut []int) {
|
2019-08-05 11:42:58 +03:00
|
|
|
a[0] = 7
|
|
|
|
a << 4
|
|
|
|
}
|
|
|
|
|
2019-08-07 15:16:10 +03:00
|
|
|
// TODO
|
2019-08-05 05:34:12 +03:00
|
|
|
fn test_mut() {
|
2019-08-11 00:02:48 +03:00
|
|
|
mut numbers := [1,2,3]
|
2019-08-11 22:45:18 +03:00
|
|
|
foo(7, mut numbers)
|
2019-08-07 14:50:28 +03:00
|
|
|
//assert a.len == 4
|
2019-08-11 00:02:48 +03:00
|
|
|
assert numbers[0] == 7
|
2019-08-07 15:16:10 +03:00
|
|
|
//assert a[3] == 4
|
2019-08-05 11:42:58 +03:00
|
|
|
|
|
|
|
n := 1
|
|
|
|
mut b := &n
|
2019-08-05 05:34:12 +03:00
|
|
|
*b = 10
|
2019-08-05 11:42:58 +03:00
|
|
|
|
|
|
|
//mut b := mut a
|
|
|
|
//b = 10
|
2019-08-30 12:16:39 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
fn test_mut_2() {
|
|
|
|
zero := 0
|
|
|
|
|
|
|
|
mut b := B{}
|
|
|
|
b.a << A{}
|
|
|
|
|
|
|
|
b.a[0].v = [9, 8, 7]
|
|
|
|
|
|
|
|
b.a[0].v << 6
|
|
|
|
b.a[zero].v << 5
|
|
|
|
|
|
|
|
b.a[0].v[zero] = 3
|
|
|
|
b.a[0].v[b.a[zero].v[zero]] += 1b.a[0].v[b.a[0].v[zero]] += 1
|
|
|
|
|
|
|
|
assert b.a[0].v.len == 5
|
|
|
|
assert b.a[0].v[0] == 3
|
|
|
|
assert b.a[0].v[1] == 8
|
|
|
|
assert b.a[0].v[2] == 7
|
|
|
|
assert b.a[0].v[3] == 8
|
|
|
|
assert b.a[0].v[4] == 5
|
2019-08-05 05:34:12 +03:00
|
|
|
}
|