编辑代码

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()
    }
}