附加到实现的基本接口部分

时间:2019-06-03 20:42:41

标签: go interface append slice

为什么下面的方法不起作用?

locations := make([]*LocationEvent, 0)
data := make([]Event, 0)
data = append(data, locations...)

其中*LocationEvent(结构)实现Event(接口)。

虽然以下内容可以正常工作

data = append(data, &LocationEvent{}, &LocationEvent{})

那么使用[]*LocationEvent扩展实际的...切片时有何不同?

1 个答案:

答案 0 :(得分:0)

切片类型必须与ThCredFPTDDTP.SelectedDate.ToString("mm/dd/yyyy")函数中可变参数的类型完全匹配。 append的类型为locations,因此与[]*LocationEvent不兼容。使用切片时,Go中没有自动的“向下转换”。

您必须将位置复制到[]Event的新切片中,或将Event的项目一个接一个地添加到locations切片中。

有关更多说明,请点击此处:https://stackoverflow.com/a/12754757/6655315