Golang更改指针接口的类型

时间:2018-08-16 17:32:45

标签: go

我有一个函数,它返回某些接口的指针的一部分。我想稍后在代码中将类型更改为实现类型,但无济于事,我仍然收到无效的类型断言。

示例

func Test(c Parsable)([]*Parsable, error) {
   // generate slice by factory method on Parsable inteface and return slice
}

var implParsable ImplParsable
results, err := Test(implParsable) 

data := results[0].(ImplParsable) // I tried this in many variations but nothing works

1 个答案:

答案 0 :(得分:3)

resultSets[0]是指向接口的指针,因此您需要取消引用该指针以获取接口值,由于切片值是可寻址的,因此可以内联。

data :=  (*resultSets[0]).(ImplParsable)