v / cmd / v2 / test_sumtype.v
28 lines · 24 sloc · 275 bytes · 388caee862d59ec9a34395423127ad9e9e5122aa
Raw
1type Animal = Cat | Dog
2
3struct Cat {
4 name string
5}
6
7struct Dog {
8 name string
9 age int
10}
11
12fn make_animal() Animal {
13 return Animal(Cat{
14 name: 'whiskers'
15 })
16}
17
18fn main() {
19 a := make_animal()
20 match a {
21 Cat {
22 println(a.name)
23 }
24 Dog {
25 println(a.name)
26 }
27 }
28}
29