Go中interface嵌入和interface转换

栏目: Go · 发布时间: 6年前

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

}

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

洞察人心

洞察人心

Steve Portigal / 张振东、蒋晓、戴传庆、孙启玉 / 电子工业出版社 / 2015-10 / 65.00元

用户在哪里,有什么需求?他们为什么会选用竞争对手的产品而不是你的?从大数据中固然能得出一些结论,但是要搞清楚作为地球上顶级复杂生物的人的真实想法,还是走近他们,面对面访谈更直接有效。 用户访谈是一项技能,与一般的交谈有本质上的区别,需要遵从一定的步骤和方法。优秀的采访者用最自然的方式和用户进行交流,看似不经意,而实际上该说什么、何时说、如何说以及什么时候应该沉默,都有精准的权衡,都试图在闲聊......一起来看看 《洞察人心》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试