1、函数是一等公民
- 可以有多个返回值
- 所有参数都是值传递,slice/map/channel会有引用的错觉
- 函数可以作为变量的值
- 函数可以作为参数和返回值
2、Go接口
- 接口为非入侵性,实现不依赖于接口定义
- 所有接口的定义可以包含在接口使用者包内
- 倾向于使用小的接口定义,很多接口只包含一个方法
- 较大的接口定义,可以由多个小接口定义组合而成
- 只依赖于必要功能的最小接口
3、扩展与复用
- 内嵌的结构类型不能当成继承来用,因为其不支持访问子类的方法/数据(不支持重载)
4、多态
5、空接口与断言
- 空接口可以表示任何类型
- 通过断言来将空接口转换为指定类型