内容简介:运行结果:
// code_21_struct_interface_firsttime project main.go
package main
import (
"fmt"
)
/*
1)接口interface是一个自定义类型,接口类型具体描述了一系列方法的集合。
2)接口类型是一种抽象的类型,它不会暴露出它代表的对象的内部值的结构和这个对象支持的基础操作的结合,
他们只会展示出他们自己的方法。
因此接口类型不能将其实例化。
3)Go通过接口实现了鸭子类型(duck-typing)
*/
type Humaner interface {
SayHi()
//1)一般以er结尾
//2)接口只有方法声明,没有实现,没有数据字段
//3)接口可以匿名嵌入其他接口,或嵌入到结构中
}
type Student struct {
name string
score float64
}
//Student实现SayHi()方法
func (s *Student) SayHi() {
fmt.Printf("Student[%s,%f] say hi!!!\n", s.name, s.score)
}
type Teacher struct {
name string
group string
}
func (t *Teacher) SayHi() {
fmt.Printf("Teacher[%s,%s] say hi!!!\n", t.name, t.group)
}
type MyStr string
func (str MyStr) SayHi() {
fmt.Printf("MyStr[%s] say hi!", str)
}
func WhoSayHi(i Humaner) {
i.SayHi()
}
func main() {
//接口的实现:1)接口是用来定义行为的类型。
//2)这些被定义的行为不由接口直接实现,而是通过方法由用户定义的类型实现。
//3)一个实现了这些方法的具体类型是这个接口类型的实例。
//4)如果用户定义的类型实现了某个接口类型声明的一组方法,那么这个用户定义的类型的值就可以赋给这个接口类型的值。
//这个赋值会把用户定义的类型的值存入接口类型的值。
s := &Student{"ck_god", 88.88}
t := &Teacher{"god_girl", "computer_programmer"}
var tmp MyStr = "字符对象"
s.SayHi()
t.SayHi()
tmp.SayHi()
fmt.Println("\n==============\n")
//多态--鸭子模型,调用同一接口,不同表现
WhoSayHi(s)
WhoSayHi(t)
WhoSayHi(tmp)
fmt.Println("\n==============\n")
x := make([]Humaner, 3)
x[0], x[1], x[2] = s, t, tmp
for _, value := range x {
value.SayHi()
}
fmt.Println("\n==============\n")
}
运行结果:
Student[ck_god,88.880000] say hi!!! Teacher[god_girl,computer_programmer] say hi!!! MyStr[字符对象] say hi! ============== Student[ck_god,88.880000] say hi!!! Teacher[god_girl,computer_programmer] say hi!!! MyStr[字符对象] say hi! ============== Student[ck_god,88.880000] say hi!!! Teacher[god_girl,computer_programmer] say hi!!! MyStr[字符对象] say hi! ==============
以上所述就是小编给大家介绍的《Go中的接口之初体验》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 前端接接口初体验【原创】
- 接口管理平台 DOClever 5.0.1 发布,提升用户体验修复bug
- 降低云游戏延迟优化云游戏体验:贝塞斯达推出Orion技术,还公布了免费体验计划
- PyTorch 初体验
- indexedDB 初体验
- golang爬虫初体验
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
现代前端技术解析
张成文 / 电子工业出版社 / 2017-4-1 / 79.00元
这是一本以现代前端技术思想与理论为主要内容的书。前端技术发展迅速,涉及的技术点很多,我们往往需要阅读很多书籍才能理解前端技术的知识体系。《现代前端技术解析》在前端知识体系上做了很好的总结和梳理,涵盖了现代前端技术绝大部分的知识内容,起到一个启蒙作用,能帮助读者快速把握前端技术的整个脉络,培养更完善的体系化思维,掌握更多灵活的前端代码架构方法,使读者获得成为高级前端工程师或架构师所必须具备的思维和能......一起来看看 《现代前端技术解析》 这本书的介绍吧!