我有一个函数,它返回某个接口的一部分指针。我想稍后将代码中的类型更改为实现类型,但没有任何效果,我仍然得到无效的类型断言。例子func Test(c Parsable)([]*Parsable, error) { // generate slice by factory method on Parsable inteface and return slice}var implParsable ImplParsableresults, err := Test(implParsable) data := results[0].(ImplParsable) // I tried this in many variations but nothing works
1 回答
开心每一天1111
TA贡献1836条经验 获得超13个赞
resultSets[0]
是一个指向接口的指针,因此您需要取消对该指针的引用以获取接口值,您可以内联这样做,因为切片值是可寻址的。
data := (*resultSets[0]).(ImplParsable)
- 1 回答
- 0 关注
- 92 浏览
添加回答
举报
0/150
提交
取消