-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
}
я вынесу глубоко вложенные заявления, если только для удобства чтения. Если вас беспокоит производительность, * benchmark *. (Что с этим связаны интерфейсы?) – JimB
О, я перепутал две мысли, идея интерфейса была о других вещах, которые я делаю с этим кодом, извинения. – Varun