我有 2 种基于 3rdparties 代码的结构,我无法更改type AddEvent struct {}type DeleteEvent struct {}我想创建一个字符串映射作为键和对象作为值所以每次我得到新事件我都会将它添加到地图 IE Map 应该是这样的:EventMap: event1,AddEvent{} event2,AddEvent{} event2,DeleteEvent{}AddEvent 和 DeleteEvent 未定义为接口的问题。我有没有办法使用任何结构作为值在 go 中创建一个通用映射,如果是,我该如何读取它我需要使用反射检查类型吗I.Eevent:=EventMap[event1]if reflect.TypeOf(event)==AddEvent{}else if reflect.TypeOf(event)==DeleteEvent{}
1 回答
12345678_0001
TA贡献1802条经验 获得超5个赞
缺少type switch。完整版也许你需要的是:
m := make(map[string]interface{})
addEvent := new(AddEvent)
m["event1"] = addEvent
switch m["event1"].(type) {
case *AddEvent:
// do something
case *DeleteEvent:
// do other things
}
- 1 回答
- 0 关注
- 115 浏览
添加回答
举报
0/150
提交
取消