由于我无法在类型切换中使用fallthrough,有没有办法在这段代码中合并这两种情况?
switch v := moduleSource.(type) {
case Driver:
dec.Decode(&v)
_, _ = ormInstance.Insert(&v)
case Metric:
dec.Decode(&v)
_, _ = ormInstance.Insert(&v)
default:
fmt.Println("unknown type")
}
ORM调用ormInstance.Insert()
必须有正确的结构才能工作。
答案 0 :(得分:0)
类型切换中允许使用类型列表,如Go spec。
中所定义switch v := moduleSource.(type) {
case *Driver, *Metric:
// v has the same type as moduleSource
dec.Decode(v)
_, _ = ormInstance.Insert(v)
default:
fmt.Println("unknown type")
}