-2
我有这段代码遍历地图并根据关系类型过滤一些字段,我必须运行两个循环,并且感觉它对大地图来说会很慢。有没有什么办法可以让技术/重构使代码更高效。如何使此代码更高效?
func getFields(filter map[string]map[string]bool, msg *Message) (fs []Field) {
for k, _ := range filter {
if relationString(msg) == k {
if fieldFilter, ok := filter[k]; ok {
for _, f := range msg.Fields {
if _, ok := fieldFilter[f.Name]; ok {
fs = append(fs, f)
}
}
}
}
}
return
}
如果仅仅是为了便于阅读我会分解出深度嵌套语句。如果你担心性能,*基准*。 (接口与这个有什么关系?) – JimB
哦,我搞砸了两个想法,接口的想法是关于我用这个代码做的其他事情,道歉。 – Varun