reflect.DeepEqual
reflect.DeepEqual是reflect包中的一个重要函数,它用于判断两个值是否深度相等,经常用于单元测试中。
reflect.DeepEqual的局限性
未导出字段:对于结构体的未导出字段,reflect.DeepEqual无法访问,因此无法比较。
函数比较:如果结构体或容器中包含函数,reflect.DeepEqual不会比较函数逻辑是否相同,只会比较函数指针是否相等。
接口型函数
接口型函数就是该函数类型实现了这个接口。(参考net/http的HandlerFunc)
函数类型实现了接口,那函数参数是接口的时候,既能够将普通的函数类型(需类型转换)作为参数,也可以将结构体作为参数,使
用更为灵活,可读性也更好,这就是接口型函数的价值。
1 | type Handler interface { |