package main
import "fmt"
type Animal interface{
say()
}
type Dog struct{}
func (d Dog) say() {
fmt.Println("woof")
}
type Cat struct{}
func (c Cat) say() {
fmt.Println("meow")
}
func main () {
var x Animal = Dog{}
if x, ok := x.(Cat); ok{
fmt.Println("A cat")
} esle {
x.say()
}
}