我有這段代碼可以迭代地圖并根據(jù)關(guān)系類型過(guò)濾一些字段,我必須運(yùn)行兩個(gè)循環(huán)并且感覺(jué)對(duì)于大地圖來(lái)說(shuō)它會(huì)很慢。有什么方法可以讓我通過(guò)技術(shù)/重構(gòu)來(lái)使這段代碼的性能更高。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}
1 回答

小怪獸愛(ài)吃肉
TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個(gè)贊
您不需要外循環(huán)作為一項(xiàng)改進(jìn):
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
}
- 1 回答
- 0 關(guān)注
- 171 瀏覽
添加回答
舉報(bào)
0/150
提交
取消