Go中interface嵌入和interface转换

// code_22_interface_field_interface project main.go
package main

import (
    "fmt"
)

type Humaner interface {
    SayHi()
}

type Personer interface {
    Humaner
    Sing(lyrics string) //lyrics 歌词
}

type Student struct {
    name  string
    score float64
}

func (s *Student) SayHi() {
    fmt.Printf("Student[%s, %f]say hi!\n", s.name, s.score)
}

func (s *Student) Sing(lyrics string) {
    fmt.Printf("Student sing[%s]!!\n", lyrics)
}

func main() {
    s := &Student{"ck_god", 88.88}

    var i2 Personer
    i2 = s //接口指向struct对象
    i2.SayHi()
    i2.Sing("god is a girl")

    //var i3 Humaner = &Student{"ck_god", 88.88}
    //var i4 Personer = i1 //err
    //Personer为超集,Humaner为子集
    var i5 Personer = &Student{"ck_god", 88.88}
    var i6 Humaner = i5
    i6.SayHi()

}

//总结:通过赋值或者参数传递的形式,完成接口的调用。

标题名称:Go中interface嵌入和interface转换
本文网址:http://bzwzjz.com/article/psdcse.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都网站建设流程 梓潼网站设计 营销型网站建设 定制级高端网站建设 重庆网站建设 成都网站建设 成都商城网站建设 成都网站设计 成都网站建设 成都网站制作 成都网站设计 外贸网站建设 高端品牌网站建设 成都定制网站建设 响应式网站建设 成都网站建设 成都企业网站设计 定制网站制作 宜宾网站设计 重庆网站建设 企业网站设计 成都响应式网站建设公司