我有一個函數,它返回某個接口的一部分指針。我想稍后將代碼中的類型更改為實現類型,但沒有任何效果,我仍然得到無效的類型斷言。例子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 關注
- 113 瀏覽
添加回答
舉報
0/150
提交
取消