v2 / vlib / v / tests / fns / methods_on_interfaces_test.v
20 lines · 16 sloc · 315 bytes · 6488041a749df9762348d019c4223908c476f2e2
Raw
1struct Cat {
2 breed string
3}
4
5interface Animal {
6 breed string
7}
8
9fn (a Animal) info() string {
10 return "I'm a ${a.breed} ${typeof(a).name}"
11}
12
13fn new_animal(breed string) Animal {
14 return &Cat{breed}
15}
16
17fn test_methods_on_interfaces() {
18 mut a := new_animal('persian')
19 assert a.info() == "I'm a persian Animal"
20}
21