34 lines
384 B
V
34 lines
384 B
V
struct Dog{
|
|
breed string
|
|
}
|
|
|
|
fn (d Dog) speak() string{
|
|
return 'woof'
|
|
}
|
|
|
|
struct Cat{
|
|
breed string
|
|
}
|
|
|
|
fn (c Cat) speak() string{
|
|
return 'meow'
|
|
}
|
|
|
|
interface Speaker{
|
|
breed string
|
|
speak() string
|
|
}
|
|
|
|
fn main(){
|
|
dog := Dog{'Leonberger'}
|
|
cat := Cat{'Siamese'}
|
|
|
|
mut arr := []Speaker{}
|
|
|
|
arr << dog
|
|
arr << cat
|
|
|
|
for item in arr{
|
|
println('a ${item.breed} says: ${item.speak()}')
|
|
}
|
|
} |