最近在学习 golang ,碰到了一个问题。
结构指针 可以隐式转换为 接口,但是再通过
t2, err := i1.(T1) 或 t2, err := (*i1).(T1)
转换回结构时就会提示 “ invalid type assertion: i1.(T1) (non-interface type *T1 on left)” 错误,无法编译。请问为什么会出现这个错误?怎么解决?
虽然 T1(i1) 可以强制转换回结构,但是即使类型不匹配也会成功,那么就可能出现错误的转换...程序就跑飞了。