47 lines
884 B
V
47 lines
884 B
V
fn test_map_of_map() {
|
|
mut x := map[string]map[string]int{}
|
|
x['a'] = map[string]int{}
|
|
assert x['a']['b'] == 0
|
|
x['a']['b'] = 5
|
|
assert x['a']['b'] == 5
|
|
x['a']['b'] = 7
|
|
assert x['a']['b'] == 7
|
|
}
|
|
|
|
fn test_map_of_map_of_map() {
|
|
mut y := map[string]map[string]map[string]int{}
|
|
y['a'] = map[string]map[string]int{}
|
|
y['a']['b'] = map[string]int{}
|
|
assert y['a']['b']['c'] == 0
|
|
y['a']['b']['c'] = 5
|
|
assert y['a']['b']['c'] == 5
|
|
y['a']['b']['c'] = 7
|
|
assert y['a']['b']['c'] == 7
|
|
}
|
|
|
|
struct Foo {
|
|
mut:
|
|
name string
|
|
}
|
|
|
|
fn test_map_of_map_to_struct() {
|
|
mut foos := map[string]map[string]Foo{}
|
|
foos['zza']['zzb'] = Foo{'bar'}
|
|
assert foos['zza']['zzb'].name == 'bar'
|
|
//
|
|
foos['zza']['zzb'].name = 'baz'
|
|
assert foos['zza']['zzb'].name == 'baz'
|
|
}
|
|
|
|
fn test_map_of_map_key_plus_assign() {
|
|
m := {
|
|
'a': 'x'
|
|
}
|
|
mut n := {
|
|
'x': 1
|
|
}
|
|
n[m['a']] += 2
|
|
println(n)
|
|
assert n['x'] == 3
|
|
}
|