1. 静态类型和动态类型
- 静态类型: static type,即变量声明的时候的类型。
- 动态类型: concrete type,具体类型,程序运行时系统才能看见的类型
1 | var i interface{} // 静态类型为interface |
2. 接口组成
- Type
- Data
3. 接口细分
3.1 iface: 带有方法的接口
示例:
1 | type Phone interface { |
实现源码:
1 | // runtime/runtime2.go |
实例:
1 | func GetTty() (*os.File, error) { |
3.2 eface: 不带方法的接口
示例:
1 | var i interface{} |
实现源码:
1 | // src/runtime/runtime2.go |
实例:
1 | func GetTty() (interface{}, error) { |