我有这个代码:
if ev, ok := evt.(*ATypeEvent); ok {
//process ATypeEvent
} else if ev, ok := evt.(*BTypeEvent); ok {
//process BTypeEvent
} else if ev, ok := evt.(*CTypeEvent); ok {
//process CTypeEvent
}
现在碰巧我还有 3 种事件类型,它们都适合其他 3 种中的一种——我认为我需要一个 OR。
但是经过几次尝试,我一直无法弄清楚该怎么做。这不起作用:
if ev, ok := evt.(*ATypeEvent) || evt.(*XTypeEvent); ok {
//process ATypeEvent and X
} else if ev, ok := evt.(*BTypeEvent) || evt.(*YTypeEvent); ok {
//process BTypeEvent and Y
} else if ev, ok := evt.(*CTypeEvent) || evt.(*ZTypeEvent); ok {
//process CTypeEvent and Z
}
也不是类似的东西
if ev, ok := evt.(*ATypeEvent) || ev, ok := evt.(*XTypeEvent); ok {
也不
if ev, ok := (evt.(*ATypeEvent) || evt.(*XTypeEvent ) ); ok {
如何正确地做到这一点?