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

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

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语言二叉树数据结构的应用