gpt4 book ai didi

performance - 如何让这段代码更高效?

转载 作者:数据小太阳 更新时间:2023-10-29 03:41:28 26 4
gpt4 key购买 nike

我有一段代码可以遍历 map 并根据关系类型过滤一些字段,我必须运行两个循环并且感觉它对于大 map 来说会很慢。有什么方法可以让我通过技术/重构来提高这段代码的性能。

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
}

最佳答案

你不需要外循环作为一项改进:

func getFields(filter map[string]map[string]bool, msg *Message) (fs []Field) {
if fieldFilter, ok := filter[relationString(msg)]; ok {
for _, f := range msg.Fields {
if _, ok := fieldFilter[f.Name]; ok {
fs = append(fs, f)
}
}
}
}

return
}

关于performance - 如何让这段代码更高效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30849122/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com