中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

golang多態怎么實現

小億
82
2023-11-01 23:10:15
欄目: 編程語言

在Go語言中,多態可以通過接口和類型斷言來實現。

  1. 使用接口實現多態:

定義一個接口,包含多個方法。

type Animal interface {
    Sound() string
}

定義多個結構體,并實現接口的方法。

type Dog struct{}

func (d Dog) Sound() string {
    return "汪汪汪"
}

type Cat struct{}

func (c Cat) Sound() string {
    return "喵喵喵"
}

使用多態:

func main() {
    animals := []Animal{Dog{}, Cat{}}

    for _, animal := range animals {
        fmt.Println(animal.Sound())
    }
}
  1. 使用類型斷言實現多態:

定義一個接口,可以為空接口interface{},表示任意類型。

type Animal interface {
    Sound() string
}

定義多個結構體,并實現接口的方法。

type Dog struct{}

func (d Dog) Sound() string {
    return "汪汪汪"
}

type Cat struct{}

func (c Cat) Sound() string {
    return "喵喵喵"
}

使用多態:

func main() {
    animals := []interface{}{Dog{}, Cat{}}

    for _, animal := range animals {
        if a, ok := animal.(Animal); ok {
            fmt.Println(a.Sound())
        }
    }
}

以上兩種方法都可以實現多態,具體使用哪種方法取決于實際需求和代碼設計。

0
古丈县| 双流县| 甘泉县| 克东县| 蓝山县| 义马市| 辽源市| 沧州市| 清河县| 恩平市| 陈巴尔虎旗| 广河县| 东辽县| 镇巴县| 鄂托克旗| 江油市| 杭锦旗| 平舆县| 乌什县| 闽侯县| 梁河县| 隆尧县| 郯城县| 济源市| 衡南县| 延津县| 崇义县| 徐闻县| 芦溪县| 孝昌县| 随州市| 原平市| 东辽县| 凤冈县| 金堂县| 长丰县| 延川县| 清涧县| 涿州市| 虞城县| 崇信县|