获取在golang中实现接口的所有结构

时间:2018-09-07 22:56:44

标签: go struct interface

比方说,我们有一个接口和一些实现其方法的结构,因此在main方法中,我们可以通过键入其名称在接口片中对其进行调用。

所以我的问题是我们如何才能获得实现Animal接口的所有结构,因此我不需要对每个结构的名称进行硬编码?

package main

import (
    "fmt"
)

type Animal interface {
    Speak() string
}

type Dog struct {
}

func (d *Dog) Speak() string {
    return "Woof!"
}

type Cat struct {
}

func (c *Cat) Speak() string {
    return "Meow!"
}


func main() {
    animals := []Animal{ &Dog{}, &Cat{} }
    for _, animal := range animals {
        fmt.Println(animal.Speak())
    }
}

0 个答案:

没有答案