如果 func 要求入参为接口数组:
func F(arr []IShape)
然后结构体X指针实现了这个接口:
var _ IShape = &X{}
这时候这么写是会报错的:
1 | arr := []*X{} |
说明入参要求是接口数组,就一定要传入接口数组。
接口的实现的数组 ≠ 接口数组
正确的写法:
1 | arr := []IShape{} |
如果 func 要求入参为接口数组:
func F(arr []IShape)
然后结构体X指针实现了这个接口:
var _ IShape = &X{}
这时候这么写是会报错的:
1 | arr := []*X{} |
说明入参要求是接口数组,就一定要传入接口数组。
接口的实现的数组 ≠ 接口数组
正确的写法:
1 | arr := []IShape{} |