Go语言接口(interface),Golang接口(interface)

接口本身是调用方和实现方均需要遵守的一种协议,大家按照统一的方法命名参数类型和数量来协调逻辑处理的过程。

Go 语言中使用组合实现对象特性的描述。对象的内部使用结构体内嵌组合对象应该具有的特性,对外通过接口暴露能使用的特性。

Go 语言的接口设计是非侵入式的,接口编写者无须知道接口被哪些类型实现。而接口实现者只需知道实现的是什么样子的接口,但无须指明实现哪一个接口。编译器知道最终编译时使用哪个类型实现哪个接口,或者接口应该由谁来实现。

其它编程语言中的接口

接口是一种较为常见的特性,很多语言都有接口特性。C/C++、C# 语言中的接口都可以多重派生实现接口组合;在苹果的 Objective C 中与接口类似的功能被称为 Protocol,这种叫法比接口更形象、具体。

非侵入式设计是 Go 语言设计师经过多年的大项目经验总结出来的设计之道。只有让接口和实现者真正解耦,编译速度才能真正提高,项目之间的耦合度也会降低不少。
本章内容:
1. Go语言接口声明(定义)
2. Go语言实现接口的条件
3. Go语言类型与接口的关系
4. Go语言接口的nil判断
5. Go语言类型断言简述
6. Go语言实现日志系统(支持多种输出方式)
7. Go语言排序(借助sort.Interface接口)
8. Go语言接口的嵌套组合
9. Go语言接口和类型之间的转换
10. Go语言空接口类型(interface{})
11. Go语言使用空接口实现可以保存任意值的字典
12. Go语言类型分支(switch判断空接口中变量的类型)
13. Go语言error接口:返回错误信息
14. Go语言接口内部实现
15. Go语言表达式求值器
16. Go语言实现Web服务器
17. 部署Go语言程序到Linux服务器
18. Go语言音乐播放器
19. Go语言实现有限状态机(FSM)
20. Go语言二叉树数据结构的应用