# interface类型

因为intreface{} 没有待实现的抽象函数,叫做空接口,任何其他类型都可以说我实现了你。

所以如果一个函数参数是interface{} , 那么可以传任何类型,比如int32、float32..., 因为这些类型都实现了interface{}空接口。

进一步扩展我们知道,如果一个接口A实现了另一个接口A1, 那么A1为参的函数,都可以传A类型实例。

就好比: 我实现了你定义的规则,我就能模仿你,变成你,代替你的位置。

什么地方用呢: 比如写test用例,你测试包只需要定义自己的接口,接口包含的函数可以只取部分testing.T接口定义的函数,这样可以直接传 t *testing.T作为测试函数的参数。