课程名称:GO开发工程师
课程章节:1-4接口的值类型
课程讲师: ccmouse
课程内容:
- 接口里的变量有什么;
实现者的类型 + 实现者的值 / 实现值值的指针 - 接口变量自带指针;
- 接口变量同样通过值传递,几乎用不到接口变量的指针 ;
- 指针接收者只能以指针方式使用,值类型的接收者两者均可(指针方式或者值方式) ;
- 用接口类型表示任何类型: interface{};
- 使用Type Assertion去验证类型是否正确:realRetriever := r.(*real.Retriever),示例是假定r的类型是(*real.Retriever)。
课程收获:
- 一般不使用接口本身的指针去操作,更多的是接口本身使用值,接口内部的值去做指针操作。
- 万能类型的接口interface 用起来比较方便,但一个切片里包含多种类型的数据,在实际使用过程中会不会带来坑?
- 打印格式化:%T打印类型;%v(小写)打印值。
- 日常使用中建议使用值类型的接收者,以为值类型的接收者既可以接收指针、又可以接收值方式传递具体的数据。