-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