问题描述
比如说 a 变量是 *xxx , 他实现接口 Ixxx, 如果*xx 没有初始化 =nil,返回回去给ixxx,那么 Ixxx ! =nil 但是实际是nil
如图所示
启动LoadTaskManager 返回一个 定义为如下的接口
type ITM interface{
}
fun(xx *xx) LoadTaskManager() ITM {
}
如果*xx 中有一个实现 ITM的,但是没有初始化的接口 *yeezy,此时直接判断 *yeezy=nil,但是如果返回这个 *yeezy 后,在外部进行判断,
此时不会 = nil,可以通过typeof进行反射参数类型,是 *yeezy ,并且debug或者打印 *yeezy 的 ITM 结果如下
<nil> *yeezy
解决方案
在转化ITM的时候进行判断,如果*yeezy 是nil 就返回nil,而不是返回没初始化 *yeezy